RadioGroup获取到上一个选中的radioBtnID实现还原选中上一个radiobtn
2017-03-05 12:48
330 查看
自定义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
相关文章推荐
- Extjs radiogroup 获取选中
- html中点击radio后的文字相当于选中该单选按钮如何实现?怎么实现两个redio,选中一个,取消另一个?
- 关于获取RadioGroup里面的RadioButton的值,多行RadioGroup展示清除选中效果
- Android 如何获取RadioGroup选中RadioButton监听
- Android 如何获取RadioGroup选中RadioButton的内容
- extjs4.1获取radiogroup选中值
- Android 如何获取RadioGroup选中RadioButton的内容
- 关于获取RadioGroup里面的RadioButton的值,多行RadioGroup展示清除选中效果
- 自定义RadioGroup动态添加RadioButton,并获取选中radioButton的位置
- Android RadioGroup 设置某一个选中或者不可选中
- 简单获取input file 选中的图片,并在一个div的img里面赋值src实现预览图片
- jquery点击div获取radio-实现ul列表中点击radio后面的文本选中radio
- 利用RadioGroup和RadioButton实现单选且选中的效果自定图片
- 使用Jquery获取Bootstrap Radio Group当前选中的单选框的值
- 简单获取input file 选中的图片,并在一个div的img里面赋值src实现预览图片(可实现多张图片上传和预览移除)
- 多个RadioGroup,只允许一个选中的解决方案
- Android实现RadioGroup中的RadioButton再次点击取消选中
- android RadioGroup实现单选以及默认选中
- RadioGroup+RadioButton嵌套其他布局实现多行单选布局、自定义RadioButton选中和非选中样式、文字颜色
- Android RadioGroup 设置某一个选中或者不可选中的方法