使用http://developer.android.com/reference/android/widget/TabHost.OnTabChangeListener.html
:
mTabHost.setOnTabChangedListener(new OnTabChangeListener(){
@Override
public void onTabChanged(String tabId) {
if(TAB_1.equals(tabId)) {
//Do first activity task
}
if(TAB_2.equals(tabId)) {
//Do the other task...so on
}
}});
編集:
あなたが特定のタブがクリックされたことを確認したい場合は、あなたが追加する必要がありますリスナーをTabHostではなくタブ自体に追加します。
タブの実装内のビューの階層は次のとおりです。
TabHost
TabWidget
(tab)
(tab)
FrameLayout
タブを呼び出すことにより、実行時に追加されます。tabHost.addTab(tabHost.newTabSpec(「」));
あなたはその後、呼び出すことによって、個々のタブへのハンドルを取得することができます。getTabWidget()getChildAt(4);
本質的に、OnClickListenerをTabWidgetの子に追加しています。個々のタブのクリックを取得できるようになりました。ただし、これにより、タブがクリックされたときにコンテンツが変更されるデフォルトの動作が上書きされます。したがって、あなたのコンテンツを変更するには、あなたのOnClickListenerがそれを行う必要があります。これはあなただけ.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
を使用
tabHost.addTab(tabHost.newTabSpec("tab1")
.setIndicator("First Text")
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
.setContent(new Intent(this, class1.class)));
tabHost.addTab(tabHost.newTabSpec("tab2")
.setIndicator("Second Text")
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
.setContent(new Intent(this, class2.class)));
を望むものであると思う
final String myTabTag = "My Tab";
final int myTabIndex = 3;
getTabHost().addTab(getTabHost().newTabSpec(myTabTag));
getTabWidget().getChildAt(myTabIndex).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (getTabHost().getCurrentTabTag().equals(myTabTag)) {
getTabHost().setCurrentTab(myTabIndex);
}
}
});
問題の詳細な仕様をご記入ください。あなたがタブを更新する場合は、ユーザーがタブをクリックすると、特定の時間間隔で言うことができますか? –
はい。各タブをクリックすると、アクティビティが更新されます。 – unnamed