0

UIスレッドに参加していない、スリープを呼び出すなどの理由で無効化に問題があるスレッドを見つけましたが、それは私には当てはまりません。UIで実行されるonContextItemSelectedのコードですよね?

case CUT_ID:
            if(ldb.hasRights(meta.vpath)){
                RelativeLayout importBar = (RelativeLayout)findViewById(R.id.import_bar);
                RelativeLayout editBar = (RelativeLayout)findViewById(R.id.edit_bar);
                importBar.setVisibility(View.GONE);
                editBar.setVisibility(View.VISIBLE);
                clipboardVPath = meta.vpath;
                ImageView thumbView = (ImageView) info.targetView.findViewById(R.id.thumbview);
                thumbView.setImageResource(R.drawable.cut);
                gridView.invalidate();

thumbView.setImageResource(R.drawable.cut); グリッドビューのアイテムをはさみのシンボルで置き換えるという望ましい効果があります。別のアイテムのカットを選択すると問題が発生します。これで、両方にカットドローアブルがありますが、カットできるのは1つのアイテムだけです。カスタムThumnbnailAdapterのgetViewのこのコードは、最初にカットを選択したビューが配列thumbBitmapsからのビットマップに戻ることを保証する必要があります。

if (thumbBitmaps.size() > position) {
                if(meta.vpath.equals(clipboardVPath)){
                    holder.img.setImageResource(R.drawable.cut);
                }else{
                    holder.img.setImageBitmap(thumbBitmaps.get(position));
                }   

            }

ここで何が問題なのですか?

4

1 に答える 1

0

必要なのはadapter.notifyDataSetChanged();でした。無効化すると思いますが、gridviewは子供たちに再描画が必要かどうかを尋ねますが、データが最新であると考えているため、全員が「いいえ」と答えます。それは私の推測です。

于 2012-07-09T16:38:07.073 に答える