2012-01-11 14 views
2

나는 사용자 정의 어댑터가 ListView입니다. 그것은 CheckBoxes를 계산합니다. 그 중 하나가 점검 될 때, 나는 다른 것들을 체크하지 않도록하고 싶습니다. CheckBox 목록을 만든 다음이 목록을 반환하는 메서드를 만들었지 만 IndexOutOfBounds를 계속 유지했습니다 (getBox 메서드의 목록에 CheckBox를 추가했습니다).안드로이드리스트 체크 박스 체크 박스

This is my adapter.

는 XML :

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" > 

<CheckBox android:id="@+id/checkBoxListView" 
    android:layout_height="50px" 
    android:layout_width="50px"/> 

<EditText android:id="@+id/editTxtListView" 
    android:layout_height="50px" 
    android:layout_width="680px" 
    android:editable="false" 
    android:focusable="false" />  

답변

2

왜 체크 위치를 나타내는 글로벌 정수가와의 getView 방법에의 getView가 호출되는 글로벌 변수의 값과 위치, 경우에 볼 수 없습니다 같은 확인란을 선택하지 않으면 체크하지 않습니다.

코드를 pastebin에서 보았습니다.
당신은 꽤 복잡한 일을하고 있습니다.
어쨌든, 그냥 빠른 설명,
하지 마십시오 this.pos = position;
(getView()). 대신이 검사 경우 (위치보다 == this.pos)의

{
//이 확인란을 선택} 다른
을 또한


{
//이 확인란
의 선택을 취소}, "POS"활동에 의해 제어되어야한다 또는 목록의 데이터를 처리하는 pojo 자체.

+0

이 경우 작동하는 경우 어댑터 작동 방식을 이해하지 못했습니다. 어떤 경우에 getView 메소드가 호출됩니까? –

+0

get view는 현재 화면에 표시되어있는 목록보기의 모든 행에 대해 호출됩니다. 그래서 만약 index = 2에서 상자를 체크했다면, getView는 index = 0에서 list length로 호출 될 것이고, 2 번째 위치에서만 checked가 체크 표시가 그려지기 때문에 다른 것들은 box가 그려 질 것입니다. 다음과 같이 어댑터에 대한 이해를 돕기 위해 http://developer.android.com/reference/android/widget/Adapter.html 및 http://www.vogella.de/articles/AndroidListView/article.html – akkilis

+0

I 시도했지만,이 작동하지 않았다 .. 어쩌면 내가 뭔가 잘못하고 있어요. 내가 어떻게해야 할지를 생각할 수 없기 때문에 나는 @ Pastebin 코드를 게시했다. http://pastebin.com/iAdJJ6tg –

관련 문제