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));
}
}
ここで何が問題なのですか?