RadioGroup获取到上一个选中的radioBtnID实现还原选中上一个radiobtn
来源:互联网 发布:搞怪相机软件大全 编辑:程序博客网 时间:2024/06/14 23:46
自定义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 0
- RadioGroup获取到上一个选中的radioBtnID实现还原选中上一个radiobtn
- 增加一个复选框到上一个程序中使得选中或不选中复选框时插入的文字不同
- php取上一个页面中checkbox选中的值
- Extjs radiogroup 获取选中
- select标签输出选中的值和保存上一个选中的值
- gridview如何实现单选的功能,(选中哪一个,那个颜色就改变。上一个的消失。)
- Extjs 获取 radiogroup 选中项的值
- 获取上一个页面的地址
- 获取上一个页面的url
- oracle时间的获取,前一天,上一个星期,上一个月
- js实现获取上一个月的一天,和最后一天
- Android 如何获取RadioGroup选中RadioButton的内容
- Android 如何获取RadioGroup选中RadioButton的内容
- RadioGroup选中状态的问题
- 获取调用该方法的上一个方法
- android 获取上一个activity的返回值
- android 获取上一个activity的返回值
- asp.net 获取上一个页面的地址
- hive (数据仓库工具) 基本概念
- 对margin的深入理解
- 使用ajax提交form表单,包括ajax文件上传
- 最长回文子串第二部分(leetcode)
- 【Activiti工作流】6.Activiti入门程序HelloWorld演示流程的执行(下)
- RadioGroup获取到上一个选中的radioBtnID实现还原选中上一个radiobtn
- java中static相关问题,执行顺序等
- Python定向爬虫——校园论坛帖子信息
- Trie树
- php-fpm源码分析
- ajax传值到ASP.NET的aspx文件后台代码实现(VB)
- Top 10 Open Source Bug Tracking System系统
- Differences Between the NDB and InnoDB Storage Engines
- 《大型数据库作业2》客户端的配置与应用