2012-02-23 2 views
0

목록의 각 항목에 대한 체크 박스를 지원하는 샘플을 많이 보았지만 최대한 멀리있는 것으로 보입니다. 내 문제는 상호 작용하는 항목의 두 목록이 있다는 것입니다.CheckBox 및 선택 가능한 항목이있는 Android ListView

첫 번째 목록에는 메서드 문이 표시됩니다. 사용자가 메서드 문을 선택하면 두 번째 목록에는이 메서드 문에 대한 위험 평가 목록이 표시됩니다. 나는이 모든 문제없이 일하고있다.

이제 사용자가 사용하려는 메서드 문을 (확인란을 통해) 선택할 수 있도록이 내용을 확장해야합니다. 이것이 의미하는 바는 listitem을 선택하거나 체크 박스를 선택하지 않고 두 번째리스트 박스를 채우는 것을 원하지 않는다는 것입니다. 그러나 사용자가 항목을 수동으로 검사 할 수 있어야합니다.

모든 의견을 환영합니다. 어쩌면 ListView가 스크롤 뷰 내에서 동적으로 생성 된 테이블 일 수도 있습니다.

답변

0

나는이 방법을 시도 할 것이다.

  1. ListView의 선택 모드를 NONE으로 설정하십시오.
  2. TextView 및 CheckBox를 사용하여 ViewGroup (선형/상대/프레임 레이아웃)을 빌드하십시오. 은 ListView의 셀입니다.
  3. 어댑터에서보기를 바인딩 할 때 CheckBox에서 CompoundButton.OnCheckedChangeListener를 설정하십시오. Integer에 뷰의 위치를 ​​지정하고 셀의 태그로 설정하십시오 (기억 : 뷰가있는 바인딩 데이터에서 수행).

    private static class MyOnCheckedChangeListener implements CompoundButton.OnCheckedChangeListener { 
         @Override 
         public void onCheckedChange(...) { 
           Integer position = (Integer) view.getTag(); 
           //your logic with position 
         } 
        } 
    

또는 단지 OnClickListener를 설정합니다.

아이디어는 CheckBox를 클릭 할 수있게하고 클릭 이벤트를 사용하게하고 그 부모는이 이벤트를 수신하지 않으며 AdapterView.OnItemClickListener는 실행되지 않습니다.

관련 문제