2012-06-01 3 views
1

ListView를 사용하여 표시 할 문자열 배열이 있습니다. 온라인에서 ListActivity 클래스를 확장하여이를 확인할 수있었습니다. 하지만 문제가 있습니다. 내 응용 프로그램에서 이미 TabActivity를 상속 받았습니다. 이제 다중 클래스를 상속받지 못합니다. 지금 무엇을해야합니까? 탭을 유지하고 ListView에서 문자열을 생성해야합니다. 모든 제안을 환영합니다.안드로이드 ListActivity와 동일한 클래스의 TabActivity

답변

3

다행히도 ListView을 사용하기 위해 ListActivity에서 상속 받으면이 필요합니다. ListActivity에서 상속받은 유일한 것은 속성이 android:id="@android:id/list" 인 레이아웃에서 ListView을 자동으로 찾고, ListView에서 액세스 할 수있는 다른 도우미 메서드와 함께 목록 어댑터를 설정하는 도우미 메서드를 추가한다는 것입니다.

따라서, 귀하의 경우, 여러 클래스에서 상속 할 수 없기 때문에, 당신은 TabActivity의 슈퍼 클래스를 유지할 수 있으며, 단순히 ListView을 찾을 수 findViewById를 호출 한 다음 수동으로 ListViewsetAdapter를 호출합니다.

+0

ListView에 대해 onItemSelected() 정의는 어떻게됩니까? ListActivity를 상속하지 않고 함수를 정의 할 수 있습니까? – Swayam

+0

ListActivity가 가지는 모든 도우미 메서드가 [ListView] (http://developer.android.com/reference/android/widget/ListView.html)에서 직접 노출됩니다. – wsanville

+0

이 코드를 사용했습니다. 그러나 문제가 있습니다. 하나의 항목 만, 첫 번째 항목이 표시됩니다. 내 코드에는 "Afghanistan"만 표시됩니다. 내가 어디로 잘못 가고 있는지 말해 줄 수 있니? list = (ListView) findViewById (R.id.list); \t \t 문자열 [] 항목 = 새로운 String [] { \t "아프가니스탄", "알바니아"}; ArrayAdapter adapter1 = 새로운 ArrayAdapter (this, android.R.layout.simple_list_item_1, items); list.setAdapter (adapter1); – Swayam

관련 문제