当我在我的 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(View) 代码时出现问题。logcat 消息如下:
当我想在线程中从 web 下载 img 并将其绑定到 listItem 时,问题导致图片首先显示在错误位置。第一项将快速显示所有图片,然后更改为第一项的图片,其他项目显示他们的图片。但是当我从 oncreate 中删除 setcontentview 代码时,问题就消失了..需要帮助