安卓开发listview中包含radiogroup选项在滚动时自动选中的解决方法。BaseAdapter,RadioGroup,ListView,ViewHolder
来源:互联网 发布:mysql语句书写顺序 编辑:程序博客网 时间:2024/04/30 13:57
做类似于选择题的安卓开发,刚刚上手,小白一个,最初使用simpleadapter写的listview发觉是个中看不中用的东西,内部的复杂控件无法监听,网上找说继承自baseadapter的功能更加强大,功能更多,最出名的是converview可以带来listview优化,网上很多博客介绍了这些。
但正是由于这个listview回收机制,是的用户的原有选定项被原封不动地回收重新利用,我们要做的就是在初次选择后记住用户的选择内容,并在回收利用时根据列表项的列表号进行对号入座地回复。
具体处理方法:
0.每个列表项都是一个包含问题和选项及其get set方法的类(Listitem)的对象(listitem),并将其添加到LIst<Listitem>集合中。
1.先取消radiogroup的监听能力,使其不会记录下一步操作。
2.在显示列表项时(gettag()之后)检查列表项的状态,该状态由下一步设定,利用内部的get方法。
3.进行监听,对选项的点击操作会利用set方法存到listitem中。
关键代码:
holder.questions.setText(mList.get(position).getQuestion()); //changeAnswers(position,holder); holder.radioGroup.setId(position); holder.radioGroup.setOnCheckedChangeListener(null); switch(mList.get(position).getAnswerId()){ case 1:holder.radioGroup.check(R.id.rb1);break; case 2:holder.radioGroup.check(R.id.rb2);break; case 3:holder.radioGroup.check(R.id.rb3);break; case 4:holder.radioGroup.check(R.id.rb4);break; case 5:holder.radioGroup.check(R.id.rb5);break; default:holder.radioGroup.clearCheck();break; } holder.radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { ListItem temp=mList.get(group.getId()); switch (checkedId){ case R.id.rb1:temp.setAnswerId(1); Toast.makeText(group.getContext(),"rb1 confirmed",Toast.LENGTH_SHORT).show(); break; case R.id.rb2:temp.setAnswerId(2);break; case R.id.rb3:temp.setAnswerId(3);break; case R.id.rb4:temp.setAnswerId(4);break; case R.id.rb5:temp.setAnswerId(5);break; default:break; } } });完整代码:https://github.com/hedefu999/CATest/tree/master/app/src/main/java/com/example/lsq/catest
刚刚搞好,凑合看吧代码有很多冗余,这只是我的项目中的一个难题。
有图有真相:
彩蛋:大家帮我看看这机子啥配置,敢这么玩
求资助这人想mac想疯了
0 0
- 安卓开发listview中包含radiogroup选项在滚动时自动选中的解决方法。BaseAdapter,RadioGroup,ListView,ViewHolder
- Android ListView中的项中包含RadioGroup时,RadioButton混乱选中的问题的解决方法
- Android开发:在ListView中使用RadioGroup时出现混乱选中现象
- Android开发:在ListView中使用RadioGroup时出现混乱选中现象
- Android开发:在ListView中使用RadioGroup时出现混乱选中现象
- Listview中设置了Radiogroup\radiobutton,有些没被选中的item项也被选中的Bug的解决方法
- 安卓ListView中使用RadioGroup进行RadioButton的单项选择
- android 中RadioGroup的默认选项和点击选项同时被选中的解决方法
- 安卓程序中RadioGroup的使用
- 安卓listview滚动时背景变黑的解决方法
- 安卓listview滚动时背景变黑的解决方法
- 安卓listview滚动时背景变黑的解决方法
- android: listview 和radiogroup
- android listview中放radiogroup选择混乱
- RadioGroup中多个RadioButton被选中的解决方法
- listview滑动时 radiogroup状态保留的问题
- ListView + CheckBox(或者是RadioGroup等控件)的混乱选中原理
- Android RadioGroup中设置默认选中RadioButton 后,选中两个的问题 解决方法
- DirectX11 纹理和资源概述
- WebView 简单使用kongleifeng
- C#字符串和正则表达式
- 线段树 CodeForces 580E
- 「JavaScript」四种跨域方式详解
- 安卓开发listview中包含radiogroup选项在滚动时自动选中的解决方法。BaseAdapter,RadioGroup,ListView,ViewHolder
- Mysql数据库常用操作
- 自行完成命令行模式的RSS阅读器(只针对Feed源)
- Struts2与SpringMVC的区别
- QT5 学习之路16---菜单栏、工具栏和状态栏
- Git部分命令
- 正则表达式
- GeoHash核心原理解析
- hdu 5480 Conturbatio 区间和