무언가가 UI 스레드가 아니고 sleep 등을 호출했기 때문에 사람들이 무효화하는 데 문제가있는 스레드를 발견했습니다. 그러나 이는 저에게 해당되지 않습니다. UI에서 실행되는 onContextItemSelected의 코드입니까?Android 무효화 작동하지 않음
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); 격자보기의 항목을 가위 기호로 바꿔 원하는 효과를냅니다. 다른 항목에서 잘라내기를 선택하면 문제가 발생합니다. 이제는 둘 다 잘라내는 드로어 블이 있고, 단 하나의 아이템 만 잘라낼 수 있습니다. 내 사용자 지정 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));
}
}
를 무슨 잘못 여기에?
당신은 이미 답변을 찾았지만 비 UI 스레드에서 무효화에 관한 질문에 대해 지적 해주십시오. 비 UI 스레드에서 호출 할 수있는 postInvalidate()라는 메서드가 있습니다.이 메서드는 올바르게 무효화합니다 너를 위해서. – Guardanis