【发布时间】:2013-11-22 23:08:52
【问题描述】:
我有一个扩展的 ListFragment,带有这个 onViewCreated()
public void onViewCreated(View v,Bundle savedInstanceState) {
super.onViewCreated(v, savedInstanceState);
mListener.onFragmentAction(0x000A);
if (mAdapter != null) {
getListView().setAdapter(mAdapter);
}
}
mListener.onFragmentAction 调用主activity附加一些监听器并将适配器发送到fragment的listView(logFrag是activity对MyListFragment的引用)
public void populateLogFrag() {
//line 225 logFrag.getListView().setOnItemLongClickListener(myEventListener);
logFrag.getListView().setOnItemClickListener(myEventListener);
refreshLogAdapter(provideLogAdapter());
}
应用加载正常,但在配置更改(设备轮换)后,我得到以下堆栈跟踪:
11-22 14:58:24.336: E/AndroidRuntime(22261): Caused by: java.lang.IllegalStateException: Content view not yet created
11-22 14:58:24.336: E/AndroidRuntime(22261): at android.support.v4.app.ListFragment.ensureList(ListFragment.java:328)
11-22 14:58:24.336: E/AndroidRuntime(22261): at android.support.v4.app.ListFragment.getListView(ListFragment.java:222)
11-22 14:58:24.336: E/AndroidRuntime(22261): at com.berrmal.timetracker.MainActivity.populateLogFrag(MainActivity.java:225)
11-22 14:58:24.336: E/AndroidRuntime(22261): at com.berrmal.timetracker.MainActivity.onFragmentAction(MainActivity.java:282)
11-22 14:58:24.336: E/AndroidRuntime(22261): at com.berrmal.timetracker.MyListFragment.onViewCreated(MyListFragment.java:23)
我无法弄清楚为什么尚未创建 ListView,因为我是在 Fragment 的 onCreateView 方法已经返回之后以及在 onViewCreated() 期间调用它的。我找到了一两个具有相关标题的线程,但解决方案似乎不适用于这里。
【问题讨论】:
标签: android android-listfragment