我正在尝试使用一个内置的Android布局android.R.layout.simple_list_item_multiple_choice
创建带有复选框的ListActivity。对于后台,我在私有AsyncTask
中获取列表,然后像这样调用适配器:
listActivity.setListAdapter(new ArrayAdapter<String>(listActivity,
android.R.layout.simple_list_item_multiple_choice, mDisplayList));
然而,当我运行我的代码时,ListView
显示为list_item.xml
,我正在使用我的项目中的所有其他ListView。知道为什么会这样吗?
答案 0 :(得分:1)
没有使用正确的xml布局的原因是因为我的AsyncTask正在扩展我的(其他)自定义AsyncTask,它使用了另一个xml布局,我离开了这一行。
super.onPostExecute();
位于方法的最后,所以继承的布局胜过我想要的那个。
答案 1 :(得分:0)
您不需要导入android.R.layout
,因为您使用android.R.layout.simple_list_item_multiple_choice
明确地调用它。
That post可能有用。
从评论中更新
很难弄清问题是什么。您是否尝试清理项目并重建?有时,如果你不清理项目并重新生成gen文件,那么android int id就会做一些奇怪的事情。但是搞乱android内部引用是不太可能的......如果它不起作用,你可能在其他地方有另一个污染的setListAdapter,但没有你的完整项目就很难说。
答案 2 :(得分:0)
当您以这种方式使用Android R时:android.R.layout...
比您在类名android
之前已经拥有包R
。
如果明确提供具有完整包名的类名,则也不需要导入它。
对于你使用android.R和你生成的R类时经常发生的不同包中的相同类名的情况。