当我在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/

10-13 05:05