setContent
タブを使用するときにインテントの代わりにビューを使用する方が軽量であるというコメントをたくさん読んでいます。
タブ付きのアプリを作成するので、内部にインテントを含めるのではなく、これを実装しようとしていますsetContent
。ただし、現在のビューを別のビューと交換するための例や簡単なチュートリアルを探すのに苦労しています。
いくつかの入力フィールドとボタンがあるTAB_Aがあるとします。ユーザーがボタンをクリックすると、TextView
「こんにちは、ユーザー!」と表示されます。同じTAB_Aで。もちろん、これは過度に単純化された例ですが、それは確かに私を正しい方向に向けます。
編集:ボタンが入ったTAB_Aというタブがあります。ユーザーがそのボタンをクリックすると、TAB_Aに「Hello、user!」と表示されます。ボタンの代わりに。
これが私のTabSpecのサンプルです。
TabHost.TabSpec spec = tabHost.newTabSpec(getString(R.string.tabspec_tag_search))
.setIndicator(getString(R.string.tabspec_indic_search),
res.getDrawable(R.drawable.tab_ic_search))
.setContent(new TabContentFactory() {
@Override
public View createTabContent(String tag) {
switch (doWhat){
case ACTIVITY_SPLASH_PAGE:
return showButton;
case ACTIVITY_HELLO:
return showHello;
}
return null;
}
});
tabHost.addTab(spec);
ここShowButton
で、およびShowHello
は両方とも拡張するクラスLinearLayout
です。どちらもonCreateで次のように初期化されます。
ShowButton showButton = new ShowButton(this);
showButtonクラス内には、次のリスナーがあります。
viewHolder.button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(context, Search247.class);
intent.putExtra(EXTRA_DO_WHAT, ACTIVITY_HELLO);
context.startActivity(intent);
}
});
アプリが最初に起動すると、ユーザーにはビューshowButtonが表示されます。ユーザーがボタンをクリックしたときに、タブの内容をshowHelloに変更したいと思います。
問題は次のとおりです。使用せずにtabspecの内容を更新する方法はありますstartActivity
か?
いつもありがとう!