2012-11-24 4 views
2

ListView가 있는데 목록에서 항목 하나를 선택하고 배경색을 회색으로 변경하려고합니다. 현재 목록에서 하나를 선택하면 다른 항목을 선택할 수도 있습니다. 선택 항목을 1로 제한하고 항목을 선택하면 다른 항목을 선택할 수 없습니다.Android : ListView에서 목록의 선택된 항목을 1로 제한하십시오.

myadapter = new MyAdapter(Main.this, object_list); 
mylist.setAdapter(myadapter); 

mylist.setOnItemClickListener(new OnItemClickListener() { 

      public void onItemClick(AdapterView<?> parent, View view, 
        int position, long id) { 

       view.setBackgroundColor(Color.LTGRAY); 

      } 
     }); 
+2

그림을 그리기 전에 다른 모든 항목의 배경색을 다시 설정해야하므로 한 번에 하나의 항목 만 칠할 수 있습니다. – seba123neo

답변

1

이 레이아웃 XML에 ListViewandroid:choiceMode="singleChoice"을 추가

여기 내 코드입니다.

1

사용자 지정 어댑터를 사용하고 있으므로 baseadapter 클래스의 isEnabled(int position) 메서드를 사용하여 클릭 한 항목을 사용 가능으로 설정하고 나머지는 사용하지 않도록 설정할 수 있습니다. 그러나 다른 항목을 선택하기에 부적합하게 만드는 이유가 무엇인지 궁금합니다.

+0

안녕 G_S! 목록에 이름이 포함되어 있습니다 .. 저는 작업에 하나의 이름을 지정해야하며 하나를 지정하려면 목록에서 하나를 선택하고 할당 버튼을 클릭해야합니다. 내 선택을 취소하려면 다른 setOnItemLongCLick을 사용하여 강조 표시된 색상을 제거해야합니다. – oyan11

+0

괜찮 았어 ... 당신이 그것을 가능하게 만들고 다른 사람들이 사용 불가능하게 만들 필요가있는 항목에 대해 isEnabled() 메소드를 체크 아웃 해보십시오. 또는 당신에게 도움이된다면 다른 해결책을 시도해보십시오 –

관련 문제