Android學習—–對RadioGroup和TabHost監聽的理解

來源:互聯網
上載者:User

我也是在debug中發現一些小細節,再次總結一下。

1、對於RadioGroup,是RadioButton的一個組設定,可以實現單選效果。 對於RadioGroup的設定監聽setOnCheckedChangeListener(OnCheckedChangeListener listener); OnCheckedChangeListener 是一個介面,介面函數為:

public void onCheckedChanged(RadioGroup group, int checkedId); 設定監聽後,實現介面,就可以得到 RadioGroup 的對象和RadioGroup 內的RadioButton的checkedId,從而實現操作。

點擊RadioButton能響應onCheckedChanged,是因為同組內舊checkedId和新的checkedId不同,有時候我們在XML的布局檔案中已經把該RadioButton的android:checked = "true"設定了,如果你在初始化定義此RadioButton的setChecked為true,可能就無法響應onCheckedChanged了。因為我在做程式的時候,為了統一方便,把很多功能都設定在onCheckedChanged中,這樣當set變化後,就能自動執行了,所以當我們已經不小心在布局檔案中設定了,可以在初始化中再次實現setChecked為true的一些動作了。

        我也是在debug的時候發現一些問題,所以要理解介面,只有在CheckedChanged的時候,才會有響應動作。

2、對於TabHost也是同理的,他是管理不同個布局顯示的tab控制器。但是會更複雜一些,以為你需要添加布局到TabHost中,void addTab(TabSpec tabSpec),但是要注意的是,在實現addTab時候,已經預設顯示第一個tab,如果你要設定顯示tab,可以用TabHost對象setCurrentTab(mCurrentTab),對於TabHost的監聽

mTabHost.setOnTabChangedListener(new OnTabChangeListener() {

            @Override
            public void onTabChanged(String tabId) {
                // TODO Auto-generated method stub
                  });

onTabChanged也是當tab變化是才能夠響應的,在onTabChanged完成一些動作是要記住TabHost預設現實第一個tab頁,所以當你初始化setCurrentTab(0),其實沒有完成onTabChanged中對應id的操作。

         我估計寫的不夠清楚,但是在你偵錯工具的時候,會深刻體會android的這些控制項。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.