2012-07-09 5 views
0

무언가가 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)); 
       } 

      } 

를 무슨 잘못 여기에?

답변

0

필요한 것은 adapter.notifyDataSetChanged(); 무효화에 관해서는 그리드 뷰가 자식을 다시 그려야하는지 묻습니다. 데이터가 최신이라고 생각하기 때문에 모두 대답이 아니오입니다. 내 추측이야.

+1

당신은 이미 답변을 찾았지만 비 UI 스레드에서 무효화에 관한 질문에 대해 지적 해주십시오. 비 UI 스레드에서 호출 할 수있는 postInvalidate()라는 메서드가 있습니다.이 메서드는 올바르게 무효화합니다 너를 위해서. – Guardanis

관련 문제