2012-05-31 51 views
3
if(......) 
    { 


     tabHost.getTabWidget().getChildAt(0).setVisibility(View.GONE); 
        //to hide the first tab in the TabHost 

    } 

此代碼是否有任何問題?當我在onCreate()方法中添加此代碼時,應用程序崩潰。 任何想法?隱藏Android中的TabHost中的選項卡

我的logcat:

05-31 22:03:38.471: E/AndroidRuntime(598): Caused by: java.lang.NullPointerException 05-31 22:03:38.471: E/AndroidRuntime(598): at swayam.dev.mushtouch.MushTouchActivity.setVisibilityControls(MushTouchActivity.j‌​ava:75) 05-31 22:03:38.471: E/AndroidRuntime(598): at swayam.dev.mushtouch.MushTouchActivity.onCreate(MushTouchActivity.java:220) 05-31 22:03:38.471: E/AndroidRuntime(598): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 05-31 22:03:38.471: E/AndroidRuntime(598): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 

也試過這個代碼。仍然不斷崩潰。

getTabHost().getTabWidget().removeViewAt(0); 
+0

不要太明顯,但如果您有機會將您的主題行和標籤提及您提及的語言或開發環境*,您將獲得答案。 – CarlF

+0

好吧,我把它標記爲「Android」。無論如何,你說過之後我也改了話題。 – Swayam

+0

你可以發佈堆棧跟蹤嗎?另外,你是否在代碼中引用TabHost?如果沒有,那是你的問題。 – wdziemia

回答

13

我的回答太長了,所以生病了回答。

到目前爲止,您有

TabHost tabHost = (TabHost)findViewById(android.R.id.tabhost); 
tabHost.getTabWidget().getChildAt(0).setVisibility(View.GONE); 

你得到一個NullPointerException異常,這意味着只要您使用的代碼行,你想改變的東西,不屏幕上存在,或可能關閉的東西屏幕。

檢查import語句R.

下面的包語句,你應該具備以下條件:

import your.package.R; 

,而不是

import android.R; 

一旦是固定的,當你引用您的標籤主機,使用以下內容:

TabHost tabHost = (TabHost)findViewById(R.id.tabhost); 

如果這不起作用,請確保tabhost實際上在屏幕上,並且您不在單獨的活動中。

+0

這是我的TabHost XML的代碼。 所以如果我將java代碼更改爲R.id.tabhost,那麼它會在java代碼中顯示一條錯誤,指出找不到資源。此外,我嘗試將XML中的TabHost的id更改爲@ + id/tabhost而不是@android:id/tabhost,但這會導致其他RuntimeExceptions說tabhost的名稱應該是abdroid.R.id.tabhost。 – Swayam

+0

plz查看我的評論。 – Swayam

+0

你能夠命名是別的,就像@ + id/tabhost1?那麼在代碼中使用R.id.tabhost1? – wdziemia

4

如果你想隱藏標籤,你應該使用:

getChildTabViewAt()的代替getChildAt()

所以你的代碼應該是這樣的:

tabHost.getTabWidget().getChildTabViewAt(0).setVisibility(View.GONE); 
+0

沒有。仍然不斷崩潰。 – Swayam

+0

它適用於我,所以也許有一些其他問題。堆棧跟蹤可以是有幫助的:) – fgeorgiew

+0

我在同一個位置使用Toast,它工作正常。但是,只要我用這段代碼替換Toast,應用程序就會崩潰。 – Swayam

相關問題