当我在listview上使用notifyDataSetChanged时,onClick侦听器仅响应几次。之后,onClick侦听器将不起作用。
我想当listitem是notifyDataSetChanged时,将保留一些chache。
请告诉我如何解决。
以下代码:
@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;
}
最佳答案
我很确定您不应该在this.notifyDataSetChanged()
方法中调用getView()
。它也可能没有做任何有用的事情。
关于android - Android ListView onClick不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9569672/