Android listview onClick不起作用

时间:2012-03-05 15:53:58

标签: android android-listview

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

}

1 个答案:

答案 0 :(得分:1)

我很确定您不应该在this.notifyDataSetChanged()方法中调用getView()。它也可能没有做任何有用的事情。