Android 安卓-这是为什么告诉我;“尚未创建内容视图”;?
这是一个在数据库片段上填充listview的过程:Android 安卓-这是为什么告诉我;“尚未创建内容视图”;?,android,android-listview,Android,Android Listview,这是一个在数据库片段上填充listview的过程: public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { LinearLayout Layout5 = (LinearLayout) inflater.inflate(R.layout.tab_frag5_layout, container, false);
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
LinearLayout Layout5 = (LinearLayout) inflater.inflate(R.layout.tab_frag5_layout, container, false);
Cursor allBands;
MyDatabase db;
Context ctx = (Context)TabFragment5.this.getActivity();
db = new MyDatabase(ctx);
allBands = db.getBands();
ListAdapter adapter = new SimpleCursorAdapter (ctx,
R.layout.listelement,
allBands,
new String[] {"BandName"},
new int[] {R.id.text15});
getListView().setAdapter(adapter);
return Layout5;
}
为什么这会让我在logcat上看到“尚未创建的内容视图”?当片段打开时,程序强制关闭…A
fragment
通常应该放在活动
中,而onCreateView()
将为其容器活动
提供片段
的布局
引自
片段通常用作活动用户界面的一部分,并且
为活动提供自己的布局
因此,问题可能是由于容器
Activity
中缺少setContentView()
而不是Fragment
,我通过将适配器和getListview移动到onActivityCreated(…)解决了这个问题
onCreateView只是膨胀并返回布局。我也有同样的问题,但我的错误是通过接口从后台任务调用(不可见)片段。因此,看不见的片段试图使用它的视图,但该视图不可用。。。我用相同的解决方案修复了它:接口函数检查片段是否可见()。 谢谢你给我指明了正确的方向
public void updateListInterface(){
if(this.isVisible()) {
this.initListAdapter();
getLoaderManager().restartLoader(0, null, this);
} else {
Log.v(TAG, "view is not visible");
}
}
不应该是setContentView(..)的第一个语句吗?我不这么认为,我正在处理片段。请阅读以下问题:当您调用setAdapter()时,ListFragment会检查以确保布局中定义了列表,并且由于onCreateView()没有为片段提供视图,这是一个鸡和蛋的问题。请同时执行setAdapter()和getListView()是否确保检查?我确定getListView(),但不确定setAdapter()为什么不创建OnViewView。这似乎是最直观的选择。