2010-06-13 2 views
1

HelloTabwidget 예제로 시작했는데 정상적으로 작동합니다. 이제 내가하려는 것은 각 탭 내부 레이아웃입니다. 여기 실행할 때 여기에 코드가각 탭 안에 레이아웃을 포함 하시겠습니까? - (각 탭마다 고유 한 활동이 있습니다.)

myApp extends TabActivity { 
    TabHost tabHost; 
    onCreate() { 
     setContentView (R.layout.main); 
     tabHost = getTabHost(); 
     TabHost.tabspec spec = tabHost.newTabSpec(..).setIndicator(...). 
       setContent(new Intent().setClass(...)); 
     tabHost.addTab(spec); 
     : 
    } 
} 

myTab1Actvity extends Activity { 
    ListView myLV; 
    EditText myET; 

    onCreate() { 
    setcontentView (TAB1_LAYOUT); 

     myLV = findViewById(..); 
    : 
    myLV.setAdapter(aa); 
    myET.setOnKeyListener(....) 
    registerforContextMenu(myLV) 
    } 
} 

의 모습 스택 추적


ERROR/AndroidRuntime(691): java.lang.NullPointerException 
ERROR/AndroidRuntime(691):  at android.widget.TabHost.dispatchWindowFocusChanged(TabHost.java:295) 
ERROR/AndroidRuntime(691):  at android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:661) 
ERROR/AndroidRuntime(691):  at android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:661) 
ERROR/AndroidRuntime(691):  at android.widget.TabHost.dispatchWindowFocusChanged(TabHost.java:295) 
ERROR/AndroidRuntime(691):  at android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:661) 
ERROR/AndroidRuntime(691):  at android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:661) 
ERROR/AndroidRuntime(691):  at android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:661) 
ERROR/AndroidRuntime(691):  at android.view.ViewRoot.handleMessage(ViewRoot.java:1819) 
ERROR/AndroidRuntime(691):  at android.os.Handler.dispatchMessage(Handler.java:99) 
ERROR/AndroidRuntime(691):  at android.os.Looper.loop(Looper.java:123) 
ERROR/AndroidRuntime(691):  at android.app.ActivityThread.main(ActivityThread.java:4363) 
ERROR/AndroidRuntime(691):  at java.lang.reflect.Method.invokeNative(Native Method) 
ERROR/AndroidRuntime(691):  at java.lang.reflect.Method.invoke(Method.java:521) 
ERROR/AndroidRuntime(691):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
ERROR/AndroidRuntime(691):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 

코드의 흐름이 확인 보입니까이다? 기본적으로 각 탭에는 자체 활동이 있으며 각 탭마다 자체 레이아웃이 있습니다.

TabHost에 문제가있는 것으로 보이지만 정확하게 지적 할 수 없습니다. 어떤 제안/질문이라도 도움이 될 것입니다.

답변

1

은 "무한 원숭이 정리"를 떠올려합니다. 어쨌든 문제는 각 탭에 대한 레이아웃 파일에도 TabHost가 있습니다. 내가 사용한 첫 번째 수준 (루트) 태그는 LineHayout이며 TabHost가 아닙니다

+0

예, TabHost를 LinearLayout으로 감싸고 있습니다.이 버그는 고쳐졌습니다. – anticafe

+0

선생님, 저는 같은 문제가 있습니다.하지만 내 응용 프로그램이 안드로이드 장치에서 내 응용 프로그램을 실행할 때 잘 작동합니다.하지만 위의 오류를 만들 때 에뮬레이터에서이 응용 프로그램을 실행하십시오. 내가 뭘해야하는지 제안 해주세요. –

관련 문제