我一直在关注记事本教程,我注意到我必须在我的XML文件中使用R.id.empty
和R.id.list
才能让程序正常工作。
这些ID是什么意思?
我是否必须为我的所有列表提供R.id.list
ID?
我尝试在reference page中查找它们,但它们没有说明。
答案 0 :(得分:2)
我不熟悉R.id.empty,但是当你使用带有自定义布局的ListActivity时,必须使用android.R.id.list。
ListActivity具有默认布局,该布局由屏幕中央的单个全屏列表组成。但是,如果需要,可以通过在onCreate()中使用setContentView()设置自己的视图布局来自定义屏幕布局。为此,您自己的视图必须包含一个ID为“@android:id / list”的ListView对象(如果它在代码中则列出)
答案 1 :(得分:1)
@Override
public void onContentChanged() {
super.onContentChanged();
View emptyView = findViewById(com.android.internal.R.id.empty);
mList = (ListView)findViewById(com.android.internal.R.id.list);
if (mList == null) {
throw new RuntimeException(
"Your content must have a ListView whose id attribute is " +
"'android.R.id.list'");
}
if (emptyView != null) {
mList.setEmptyView(emptyView);
}
mList.setOnItemClickListener(mOnClickListener);
if (mFinishedStart) {
setListAdapter(mAdapter);
}
mHandler.post(mRequestFocus);
mFinishedStart = true;
}
这就是为什么你应该在你的xml中定义“android:id="@android:id/list"
”,让ListActivity.java在执行mList = (ListView)findViewById(com.android.internal.R.id.list);
时找到所需的布局。