当我在我的ListActivity中添加setContentView时,问题就发生了。下面是我的oncreate函数:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mAdapter = new MyCustomAdapter();
for (int i = 1; i < 10; i++) {
mAdapter.addItem("item " + i);
}
setListAdapter(mAdapter);
// setContentView(R.layout.main);
}下面是我的适配器getview函数:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
int type = getItemViewType(position);
System.out.println("getView " + position + " " + convertView + " type = " + type);
if (convertView == null) {
holder = new ViewHolder();
switch (type) {
case TYPE_ITEM:
convertView = mInflater.inflate(R.layout.item1, null);
holder.textView = (TextView)convertView.findViewById(R.id.text);
break;
case TYPE_SEPARATOR:
convertView = mInflater.inflate(R.layout.item2, null);
holder.textView = (TextView)convertView.findViewById(R.id.textSeparator);
break;
}
convertView.setTag(holder);
} else {
holder = (ViewHolder)convertView.getTag();
}
holder.textView.setText(mData.get(position));
return convertView;
}
}当我运行代码时,我可以在logcat中看到消息:

我料到在oncreate()函数中添加SetContent(视图)代码时会出现问题,.the logcat消息如下:

当我想在线程中从网页下载img并将其绑定到listItem上时,问题原因图片首先显示在错误的位置。第一个项目将快速显示所有图片,然后更改为第一个项目的图片,其他项目显示其图片。但是当我从oncreate中删除setcontentview代码时,这个问题就消失了。需要帮助
发布于 2013-08-05 13:33:19
ListActivity不需要调用setContentView(layoutResId)。
如果ListActivity中没有调用setConentView(),则默认布局有一个填充布局的ListView。它有自己的ID为android.R.id.list的ListView。
如果希望创建一个显示在ListActivity中的新布局,而不仅仅是Activity,那么必须将ListView的ID设置为@android:id/list。
像@+id/newListView这样的自定义ID在ListActivity自己的getListAdapter()、setListAdapter()等方法中不起作用。如果你想使用这些函数,你必须将ListView的ID设置为@android:id/list。
有关更多信息,请参阅官方安卓开发者site
https://stackoverflow.com/questions/18051094
复制相似问题