2012-05-11 41 views
-1

我试图添加一个ListFragment到姜饼的活动,但Android崩溃时创建活动并且没有堆栈跟踪。我已验证我正在使用兼容性库导入。这里是我的ListFragment代码:试图创建ListFragment崩溃

import android.content.Context; 
import android.os.Bundle; 
import android.support.v4.app.ListFragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.*; 

public class ListViewFragment extends ListFragment { 
    @Override 
    public void onActivityCreated(Bundle savedInstanceState) { 
    List listData = getListData(). 

    setListAdapter(new ListViewAdapter(getActivity(), listData)); 
    } 

    class ListViewAdapter extends BaseAdapter implements ListAdapter { 
    . 
    . 
    . 
    }  
} 

我也试过:

ListView listView = getListView(); 
listView.setAdapter(new ListViewAdapter(getActivity(), listData); 
到位setListAdapter的

()具有相同的结果调用。

当我只从一个片段扩展并用ListView膨胀布局文件时,它工作正常。当我尝试使用ListFragment中固有的ListView时,似乎有些不同。

任何有识之士将不胜感激。

回答

0

在onCreateView中比onActivityCreated更好地尝试它。

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    View v = super.onCreateView(inflater, container, savedInstanceState); 
    List listData = getListData(). 
    setListAdapter(new ListViewAdapter(getActivity(), listData)); 
    return v; 
}//met 
+0

我试图在onCreateView(),并得到这个错误:内容视图尚未创建 – NLam

+0

我更新我的回答,仅仅是明确的。另外,你是否尝试调用super.theMethodOverriden是两种情况? – Snicolas

0
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    View v = inflater.inflate(R.layout.your_layout, container, false); 
    return v; 
} 

@Override 
public void onActivityCreated(Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 
     // Set up your list in here 
} 
+0

正如我上面提到的,我在布局中放置了一个ListView,并用它的id抓住了listview句柄,它一切正常。我比任何为什么getListView()不起作用都更好奇。为什么没有堆栈跟踪给我更多的信息。 – NLam