Просмотр списка Android на клике не работает - PullRequest
1 голос
/ 05 марта 2012

Когда я использую 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 Ответ

1 голос
/ 05 марта 2012

Я почти уверен, что вы не должны вызывать this.notifyDataSetChanged() в вашем getView() методе. Это также, вероятно, не делает ничего полезного.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...