簡體   English   中英

更改按鈕單擊時選項卡的內容

[英]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);

其中ShowButtonShowHello都是擴展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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM