2011-12-05 11 views
0

私はアンドロイドで働いています。私はタブホストとタブウィジェットを使用しています。私はビューとして追加する4つのアクティビティがあります。タブ指定テキストを別のタブアクティビティに変更するにはどうすればよいですか?

これは私のプログラムである:

パブリッククラスTabDemoがTabActivityを拡張{ /**活動が最初に作成されたときに呼び出されます。 */ @Override パブリックボイドonCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main);第二の活動で今

TabHost tabHost=getTabHost(); 
    // no need to call TabHost.Setup()   

    //First Tab 
    TabSpec spec1=tabHost.newTabSpec("Tab 1"); 
    spec1.setIndicator("Tab 1",getResources().getDrawable(R.drawable.sun)); 
    Intent in1=new Intent(this, Act1.class); 
    spec1.setContent(in1); 

    TabSpec spec2=tabHost.newTabSpec("Tab 2"); 
    spec2.setIndicator("Tab 2",getResources().getDrawable(R.drawable.chart)); 
    Intent in2=new Intent(this,Act2.class); 
    spec2.setContent(in2); 

    tabHost.addTab(spec2); 
    tabHost.addTab(spec3); 
} 

}

私は「チェックイン」をボタンクリックで、このテキストを変更したいです。

spec2.setIndicator( "Check-In"、getResources()。getDrawable(R.drawable.chart));

どうすればいいですか?その子クラスのスーパークラスのsetIndicatorテキストを変更する方法を意味します。

私の質問に関連する他の質問があれば、いつでも私に尋ねてください。

ありがとうございます。

+0

グローバル変数に「checkin」を入れ、必要な特定のイベントのグローバル変数を更新します – bindal

+0

はい、これを行いましたが、このチェックインアクティビティが再度ロードされない限り動作しません。私は何をすべきか教えてください.. ..? :; ' 放送受信機 ' sendBroadcast(新しいテント(「change_caption_please」)):あなたはこのしてください... –

+0

'BroadcastReceiver受信機=(){ @Override公共ボイドonReceive(コンテキスト・コンテキスト、テントの意図){ 場合( "change_caption_please" .equals(intent.getAction())... }}; registerReceiver(受信機、 new IntentFilter( "change_caption_please"); ' – bindal

答えて

0

ボタンのクリック時にブロードキャストインテントを送信し、タブインを使用してこのインテントをアクティビティで待機することができます。

+0

のためのあなたの活動や仕事にonTabChangedListenrを実装することができます –

+0

がブロードキャストを送信するためにあなたが私に例を与えることができる – muffinmad

+0

あなたはタブのキャプションを共有プリファレンスに保存することもできるので、プログラムの起動の間は永続的です。 – muffinmad

関連する問題