2012-02-19 26 views
0

私は3つのタブにそれぞれ独自のアクティビティがあります。次のようにタブがあります:Androidでタブを変更するにはどうすればよいですか?

Home [HomeActivity] 
Search [SearchActivity] 
Account [AccountActivity] 

私はメインTabHostオブジェクトを扱う主な活動を持っており、これがその内容である:

public TabHost tabHost; 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.main); 
tabHost = getTabHost();  

tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("Home").setContent(new Intent(this, HomeActivity.class))); 

tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("Search").setContent(new Intent(this, SearchActivity.class).putExtra("callX", true))); 
tabHost.addTab(tabHost.newTabSpec("tab3").setIndicator("Account").setContent(new Intent(this, AccountActivity.class))); 
tabHost.setCurrentTab(0); 
} 

今、私は私がそれ必要な検索]タブでボタンを持っています何があっても[ホーム]タブが有効になるはずです。私は何とかtabHostオブジェクトのsetCurrentTab()メソッドを呼び出す必要がありますが、私はSearchActivityクラスの中でそれにアクセスする方法はありませんか?
私はおそらく使用方法がわからないもののためにIntentを使用するべきです。

+0

答え:http://stackoverflow.com/questions/2541802/android-switch-tabs-from-within-an-activity-within-a-tab – Luksprog

答えて

1

はTabActivityはのは、その後、私のタブのアクティビティクラスを追加し、「MainActivity」

public TabHost getMyTabHost() { 
return tabHost; 
} 

それを呼びましょう拡張する私のメインクラスにメソッドを設定します。

MainActivity ta = (MainActivity) this.getParent(); 
TabHost th = ta.getMyTabHost(); 
th.setCurrentTab(0); 

以上aproachに従ってくださいat this

関連する問題