我发现人们因无效而遇到麻烦的线程,因为他们不是在UI线程,调用睡眠等,但这不适用于我。来自onContextItemSelected的代码,在UI上运行,对吗?
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));
}
}
这里有什么问题?
答案 0 :(得分:0)
我需要的是adapter.notifyDataSetChanged(); 我想在invalidate上,gridview询问它们的孩子是否需要重绘,并且他们都回答否,因为他们认为他们的数据是最新的。这是我的猜测。