Android 试图创建ListFragment崩溃
我试图在Gingerbread中向活动添加ListFragment,但是当创建活动并且没有堆栈跟踪时,Android会崩溃。我已验证我正在使用兼容性库导入。以下是我的ListFragment代码:Android 试图创建ListFragment崩溃,android,android-listfragment,Android,Android Listfragment,我试图在Gingerbread中向活动添加ListFragment,但是当创建活动并且没有堆栈跟踪时,Android会崩溃。我已验证我正在使用兼容性库导入。以下是我的ListFragment代码: import android.content.Context; import android.os.Bundle; import android.support.v4.app.ListFragment; import android.view.LayoutInflater; import androi
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时,似乎有些不同
如果您有任何见解,我们将不胜感激。在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
我在onCreateView()中尝试了它,但出现了以下错误:内容视图尚未创建。我更新了我的答案,只是想澄清一下。另外,您是否尝试调用super.themethodverriden这两种情况?正如我前面提到的,我在布局中放置了一个ListView,并用它的id抓取了ListView句柄,一切正常。我最好奇的是为什么getListView()不能工作。以及为什么没有堆栈跟踪来提供更多信息。
@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
}