1. 程式人生 > >RadioGroup radiobutton 點選 onCheckedChanged()呼叫兩次或多次 問題

RadioGroup radiobutton 點選 onCheckedChanged()呼叫兩次或多次 問題

專案中 首頁 RadioGroup控制元件,radiobutton點選切換的時候,onCheckedChanged方法被執行了兩次,困擾了大半天。剛開始以為是頁面呼叫不當,被建立了兩次,可以用單例去解決,並沒有搞定;就百度了一下,看到好多遇到同樣問題的;

下面直接 上解決方案吧,原始碼就算了,,百度上有相關的部落格從原始碼解讀的,可以自行檢視,這裡只上解決方案了:

public RadioGroup mRadioGroupTab;
public RadioButton[] radioButtons;  // 這裡 是 定義了個集合 用來存放 button Id;

         mRadioGroupTab 
= (RadioGroup) findViewById(R.id.tab_radioGroup); mRadioGroupTab.setOnCheckedChangeListener(this);     radioButtons = new RadioButton[]{tabHome, tabCart, tabMine};// 就是findviewbyid 的 // 別的地方 intent 跳轉過來 選中 int pos = getIntent().getIntExtra(Constant.TAB_INDEX, 0);         pos 可以認為是選中的 當前button的 索引 或者是Id ,         因為下邊 setcheck 的 方法 用ID 的時候 是 從集合裡 根據索引         拿的id  
// mRadioGroupTab.check(radioButtons[pos].getId()); ((RadioButton) mRadioGroupTab.findViewById(radioButtons[pos].getId())).setChecked(true); setTabSelection(pos);