2011-09-28 3 views
0

나는 비슷한 질문을하기 전에 물어 보았다. 그러나 내가 찾고있는 것에 정말로 맞지 않는다. 여기 간다. 그러나 목록보기로 탭을 채우려고 시도하지만 모든 예제는 .setContent()에서 인 텐트를 사용하는데, 이는 내가하려는 일에 적합하지 않습니다. 그래서, 내가 한 일은 다음과 같습니다.android의 탭에 목록보기를 추가하는 방법은 무엇입니까?

try { 
    spec = tabHost.newTabSpec("ratingSort").setIndicator("TAB 1", 
         res.getDrawable(R.drawable.ic_tab_sort)) 
        .setContent((TabContentFactory) new ArrayAdapter<String>(this, R.layout.list_item, ratingSort)); 
    tabHost.addTab(spec); 
    } catch (Exception err) { 
     Log.e(err.toString(), "an error occurred..."); 
    } 

런타임 오류가 발생하기 때문에 try-catch 절에 넣습니다. 분명히 오류는 .setContent()와 ERROR/java.lang.ClassCastException : android.widget.ArrayAdapter (31530) 캐스팅과 함께 있습니다.

<resources> 
    <string-array name="rating_array"> 
     <item>Item 1</item> 
     <item>Item 2</item> 
     <item>Item 3</item> 
     <item>Item 4</item> 
     <item>Item 5</item> 
    </string-array> 
</resources> 

어떤 아이디어, 도움이 크게 감사합니다 : 여기

은 XML 파일입니다.

답변

1

ArrayAdapterTabContentFactory으로 전송할 수 없으며 HashMapDouble으로 전송할 수 있습니다. 하나

당신이 탭에서 ListView을 원하는 경우 :

  1. 레이아웃 파일의 FrameLayout의 자식으로 ListView을 넣고는, 다음 위젯 ID를 취 setContent()의 버전을 사용하거나

  2. createTabContent()에, 새로 건설 ListView 위젯을 반환, 실제 TabContentFactory 구현을 작성

두 경우 모두 ListViewsetAdapter()으로 전화하여 ArrayAdapter을 제공 할 수 있습니다.

+0

CommonsWare,이 것은 매우 도움이됩니다. 내가 만드는 응용 프로그램의 컨텍스트에서 이미 많은 작업을 수행하는 주요 활동이 있으며 단추를 클릭하면보기가 사라지고 탭이 표시됩니다. 나는 2 가지 개별 활동으로 그 일을 할 수있었습니다. 하지만 제 문제는 내가 첫 번째 활동으로 돌아갈 필요가있는 항목을 클릭 할 때마다입니다. 그래서 내 문제 야. – fabricemarcelin

관련 문제