RadioGroup獲取到上一個選中的radioBtnID實現還原選中上一個radiobtn


自定義OnCheckedChangeListener 監聽


在項目中有這樣的一個需求

如果某個 radioBtn被點擊的時候,根據判斷沒有登錄,那麼跳轉到登錄界面,

如果取消登錄瞭,就把radiobtn還原到之前被選中的radiob

實現邏輯:

自定義MyOnCheckedChangeListener 監聽

添加變量 記錄上一次選中的checkedId


//        初始化 默認為選中的 radiobtn ID
private int mLsatCheckedId = mMainRg.getCheckedRadioButtonId();
// 獲取上一個選中的 radioBtn Id
// 隻在onCheckedChanged監聽方法,更新lastCheckedId的值 mLsatCheckedId = checkedId; 前面獲取是有效的
public int getLsatCheckedId() {
return mLsatCheckedId;
}

在點擊的時候判斷是否已經登錄,

如果沒有登錄跳轉到登錄activity


 //    radioGroup 改變監聽
class MyOnCheckedChangeListener implements RadioGroup.OnCheckedChangeListener {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId) {
case R.id.main_rb_myhome:
if (checkIsLogin()) {
} else {
// 如果沒有登錄 跳轉到 登錄界面
Intent intent = new Intent(getApplicationContext(), LoginActivity.class);
// 將上一個選擇的 checkedId 傳入,如果登錄失敗,radioGroup check()上一個radiobtn
LoginActivityintent.putExtra(ConstantsString.INTENT_MAIN_LAST_CHECKED_ID, getLsatCheckedId());
// !!! 傳入參數之後 一定要clearCheck,方便在onActivityResult() 回調中 mMainRg.check();
mMainRg.clearCheck();
startActivityForResult(intent, ConstantsNum.REQUEST_CODE_START_LOGIN_ACTIVITY);
}

break;
}
// 更新lastCheckedId的值
mLsatCheckedId = checkedId;
}

private boolean checkIsLogin() {
return false;
}

// 初始化 默認為選中的 radiobtn ID
private int mLsatCheckedId = mMainRg.getCheckedRadioButtonId();
// 獲取上一個選中的 radioBtn Id
// 隻在onCheckedChanged監聽方法,更新lastCheckedId的值 mLsatCheckedId = checkedId; 前面獲取是有效的
public int getLsatCheckedId() {
return mLsatCheckedId;
}
}


在onActivityResult方法回調中處理


如果取消登錄, 那麼還原之前選中的radiobtn


  @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// 如果為取消登錄 radioGroup 回歸到上一個checked radioBtn
if (resultCode == ConstantsNum.RESULT_CODE_CANCLE_LOGIN) {
// 選擇之前的radiobtn mMainRg.check(data.getIntExtra(ConstantsString.INTENT_MAIN_LAST_CHECKED_ID, 0));
}
}

關於Activity直接 怎麼傳遞參數和獲取參數 參考另一篇博客> http://blog.csdn.net/qq_27853161/article/details/60466070

0 個評論

要回覆文章請先登錄註冊