2012-02-24 20 views
0

コンテキストからTabHostを取得しようとしています。コードはありますが、機能していません。Androidからコンテキストを取得してタブホストを有効にし、無効にする

public final static void disableTabs(Context context) { 
     TabHost tabHost = (TabHost) ((Activity) context).getParent() 
       .findViewById(android.R.id.tabhost); 
     tabHost.getTabWidget().getChildTabViewAt(1).setEnabled(false); 
     tabHost.getTabWidget().getChildTabViewAt(2).setEnabled(false); 
     tabHost.getTabWidget().getChildTabViewAt(3).setEnabled(false); 
    } 

ここで私はそれをどのように呼びますか?

Constants.disableTabs(HomeController.this); 
+0

あなたのLogCatは何ですか? – waqaslam

+0

NullPointerException、つまりtabHost変数がnullです。 –

+0

あなたのタブは 'Activity'の中ではなく、' ActivityGroup'の中ではないと確信していますか?なぜなら、アクティビティ自体は、タブを表示できないと思うからです。儀式? – waqaslam

答えて

1

私は解決策を得ました。

私Tabhostたちは親クラスとしてTabActivityを持っているときにそれを変更する働き ActivityGroupとandroid.R.id.tabhostであったので、ちょうど

TabHost tabHost = (TabHost) ((Activity) context).getParent() 
       .findViewById(R.id.tabhost) 

TabHost tabHost = (TabHost) ((Activity) context).getParent() 
       .findViewById(android.R.id.tabhost) 

を置き換えます〜R.id.tabhost

+0

あなたはそれを理解しました。あなたの** HomeController **はActivityGroupだと思います。そうであれば、代わりに、 'Activity'を' ActivityGroup'に変更すると、それはまだうまく動作し、より意味があるはずです – waqaslam

関連する問題