[英]Change content of tab on button click
我一直在閱讀很多有關使用選項卡時使用視圖而不是setContent
的意圖的輕量級方法的評論。
由於我將創建一個帶有標簽的應用程序,因此我試圖實現這一點,而不是在setContent
中包含意圖。 但是,我很難找到有關將當前視圖與另一個視圖交換的示例或簡單的教程。
假設我有TAB_A,其中包含一些輸入字段和一個按鈕。
當用戶單擊按鈕時,
TextView
將顯示“您好,用戶!”。
在同一TAB_A中。
當然,這是一個過於簡化的示例,但是肯定會為我指明正確的方向。
編輯:我有一個名為TAB_A的選項卡,其中有一個按鈕。 如果用戶單擊該按鈕,TAB_A現在將顯示“您好,用戶!”。 而不是按鈕。
這是我的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。
然后的問題是:是否可以在不使用startActivity
情況下更新tabspec的內容?
一如既往的感謝!
找到了答案:
ViewGroup viewGroup = (ViewGroup) mView.getParent();
viewGroup.removeView(mView);
addView(showResults);
其中mView
是選項卡中的初始視圖。 現在,只想弄清楚如何使應用程序記住mView
視圖中按BACK時顯示mView
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.