2013-03-11 4 views
0

두 개의 다른 탭에 ListView가있는 탭이있는 Android 애플리케이션이 있습니다. 두 개의 탭에 사용할 수 있도록 사용자 지정 ArrayAdapter (myAdap)가 있습니다. 문제는 각 탭이 각 항목의 체크 박스 상태를 각각의 목록보기로 유지해야한다는 것입니다. 2 개의 탭, 2 개의 ListView, 체크리스트 아이템의 2 개의 다른 세트 두 번째 ListView (탭)에 대한 myAdap의 복사본을 만들고 이름을 변경하면 나에게 방해가 될 수 있지만 결국에는 한 파일에서 다른 파일로 변경 내용을 복사/붙여 넣기 만하면 최신 상태로 유지됩니다. 필자는 myAdap을 수정하여 각 목록보기의 체크 박스 상태에 대한 배킹 배열과 같은 다른 매개 변수를 허용하는 것이 더 효율적이라고 생각합니다. 그런 다음, 그냥 myadapter = new myAdap (this, android.R.layout.simple_list_item_single_choice, backingArrayList); 같은 myAdap 인스턴스 수 있습니다. 또 다른 생각은 부모 클래스의 onCheckChange() 수신기를 구현하고 대신 myAdap에 수신기를 전달하는 것입니다. 이렇게하면 각각의 클래스에 백킹 어레이가 유지되지만이 경로가 가장 적합한 경로인지는 확실하지 않습니다. 내가 여기서 생각하고있는 또 다른 방법이 있니?여러보기에 대한 사용자 정의 Android ArrayAdapter 구현에 대한 생각?

+0

그것은이 같은 이론적 인 질문에 대한 구체적인 대답을 정말 어렵다 2 개 객체를 인스턴스화해야하지만, 단순히 같은 클래스의 두 개체, 탭 당 하나 작성해야처럼 보인다 . – Sam

답변

0

당신은 당신의 어댑터

myadapterForTab1 = new myAdap (this, android.R.layout.simple_list_item_single_choice, backingArrayList); 
myadapterForTab2 = new myAdap (this, android.R.layout.simple_list_item_single_choice, backingArrayList); 
+0

흥미 롭습니다. 결국이 일을 끝내기 위해서 ArrayList를 참조로 전달해야합니다. 이전에이 작업을했던 것을 기억하지 못하고 작동하는지 알 수 없으므로 ArrayList로 전달되었습니다. 그것은 눈에 띄기는하지만 효과가있는 것 같습니다. 분명히 Java는 값에 의해 원시 타입만을 전달하고, 객체는 참조로 전달됩니다. – wufoo

관련 문제