当我在listview上使用notifyDataSetChanged时,onClick监听器只响应了几次。之后,onClick监听器无法正常工作。
我猜当listitem是notifyDataSetChanged时,会留下一些字符串。
请告诉我如何解决它。
代码如下:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
holder = new ViewHolder();
convertView = mInflater.inflate(R.layout.list_row, null);
holder.mIconImg = customFindViewById(convertView, R.id.icon_img);
holder.mTitleText = customFindViewById(convertView, R.id.item_title_text);
holder.mDescText = customFindViewById(convertView, R.id.item_descr_text);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
HashMap<IField, Object> item = getItem(position);
String imageUrl = getHashmap(item, ItemField.ICON_URL);
Drawable image = ImageCache.getImage(imageUrl);
if (image == null) {
ImageDownloadTask task = new ImageDownloadTask(holder.mIconImg, null, null);
holder.mIconImg.setImageResource(R.drawable.error_ic);
try {
task.execute(Utility.getHashmap(item, ItemField.ICON_URL));
} catch (RejectedExecutionException e) {
e.printStackTrace();
}
} else {
holder.mIconImg.setImageDrawable(image);
}
String title = getHashmap(item, ItemField.CATEGORY_LIST_TEXT);
holder.mTitleText.setText(title);
this.notifyDataSetChanged();
mItemList.get(position);
// convertView.getFocusables(position);
// convertView.clearFocus();
convertView.setEnabled(true);
return convertView;
}
答案 0 :(得分:1)
我很确定您不应该在this.notifyDataSetChanged()
方法中调用getView()
。它也可能没有做任何有用的事情。