마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

x버튼 클릭후 리스트 배경 바꾸기(소스첨부)

0 추천
else
            holder=(ViewHolder)vi.getTag();
       
        final int pos = position;
        final boolean isClickable = !imageAndText.isExistedMenu;
        final boolean isEditable = imageAndText.isEditable;

        int iDrawable = 0;
       
        if(isClickable){
         holder.ll_bg.setBackgroundColor(Color.RED);
        }else{ // 겔텝 drawable 적용
   
          if(position%2 == 1){
     iDrawable = R.drawable.search_textbox_02;
    } else {
     
           iDrawable = R.drawable.search_textbox_02;
          }
         }
         holder.ll_bg.setBackgroundResource(iDrawable);

 

안녕하세요 textbox_02;는 빨간색의 배경입니다

일단 if조건에는 홀수줄일때 라고햇는데요

저기서 수정을하고싶습니다

 

x버튼을 누른후 리스트뷰들이 계속 빨간배경이 나오게끔이요..

소스 수정해주심 감사할게요
익명사용자 님이 2013년 12월 24일 질문
블린형을 쓰려고해도 잘안되네요..
버튼의 아이디는 btnx 라고 하겟습니다

1개의 답변

0 추천

if(isClickable) 윗 줄에 

holder.ll_bg.setBackgroundColor(Color.BLUE);

를 먼저 넣어서 기본 색을 지정하는 걸로 해보세요 

------------------------------------------ 수정 ----------------------

일단 리스트뷰에 뿌리는 건 어댑터에서 할 일이고, 버튼의 클릭을 받는 건 액티비티에서 하는 일일 것 같아요.

그럼 액티비티에서 어댑터로 '버튼이 눌렸다'라는 값을 넘겨줘야 하겠죠.

어댑터에 전역으로 isClicked라는 boolean 변수와 public 으로 onBtnClick 이라는 함수를 만들고, onBtnClick에서는 isClicked라는 변수를 true로 만듭니다. 그리고 새로고침을 위해 notifyDataSetChanged() 를 호출하구요.

어댑터의 getView에서는 저 isClicked 변수가 true이면 배경색을  red로, 아니면 기본 배경색으로 바꾸는 작업을 하면 됩니다.

쎄미 (162,410 포인트) 님이 2013년 12월 24일 답변
쎄미님이 2013년 12월 24일 수정
저 빨갛게 만드는 부분에 있는  isClickable가 클릭이 됐다는 뜻인가요?
네네..맞아요 원래의 소스는요
        
        final int pos = position;
        final boolean isClickable = !imageAndText.isExistedMenu;
        final boolean isEditable = imageAndText.isEditable;
        
        if(isClickable){
            holder.ll_bg.setBackgroundColor(Color.RED);
        }else{
        
            if(position%2 == 1){
                holder.ll_bg.setBackgroundResource(R.drawable.search_textbox_03);
            }else{
                holder.ll_bg.setBackgroundResource(R.drawable.search_textbox_02);
            }

이거입니다
리스트뷰가 홀수일때 2번 drawable 짝수면 3번drawable
이렇게 배경이 나오게하는거데요
이거를 수정하려했습니다..
그럼
if(isClickable)
    holder.ll_bg.setBackgroundColor(Color.RED);
else
    holder.ll_bg.setBackgroundColor(Color.BLUE);
이렇게만 하면 되는거 아닌가요?
흑흑 제가 설명을 너무 못했나보네요..
너무 감사합니다 ㅠㅠ
버튼클릭시 레드만나오게하고시어ㅛ
저런 drawable 필요없이...
버튼클릭시 리스트를클릭하면 빨갛게만 나와라
이렇게 하고싶은거에용ㅠ_ㅠ
다음 번 질문을 하실 때에는 소스를 이쁘게 보이게 하는 방법을 꼭 적용하시구요, 답변을 달 사람 입장에서 가장 이해하기 쉽고, 답변달기 쉽게 질문을 올려주시면 빠르고 쉽게 해결할 수 있을겁니다 ^^
...