博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
超简单的listview单选模式SingleMode(自定义listview item)
阅读量:4445 次
发布时间:2019-06-07

本文共 1744 字,大约阅读时间需要 5 分钟。

来源:

1.在listview item里面设置

把checked focusable clickable设置为false

2.设置ListView

3.在自定义adapter里面设置

int selectedIndex = -1;public void setSelectedIndex(int index){    selectedIndex = index;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {    RadioButton rbSelect = (RadioButton) convertView                        .findViewById(R.id.radio1);    if(selectedIndex == position){    rbSelect.setChecked(true);    }    else{    rbSelect.setChecked(false);    }}

4.在activity设置list的onItemClickListener

mList.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView
parent, View view, int position, long id) { mChangeAdapter.setSelectedIndex(position); mChangeAdapter.notifyDataSetChanged(); } });

5.可选,存储单选状态在数据库,第二次打开依然把选中的item给设置为选中状态

ChangeBean bean = mData.get(position);        mHolder.tv_name.setText(bean.name);        if (selectedIndex == position) {            mHolder.iv_choice.setChecked(true);            bean.setCheck(true);            updateData(bean);        } else {            mHolder.iv_choice.setChecked(false);            bean.setCheck(false);            updateData(bean);        }
然后在activity中在setAdapter之前把选中的item设置为选中状态
mChangeAdapter = new ChangeAdapter(this);        mList.setAdapter(mChangeAdapter);        initSelect();        mChangeAdapter.refresh(mDatas);        addListener();    }    private void initSelect() {        for (int i = 0; i < mDatas.size(); i++)        {            if (mDatas.get(i).check){                mChangeAdapter.setSelectedIndex(i);                return;            }        }    }

转载于:https://www.cnblogs.com/tqj-zyy/p/4559745.html

你可能感兴趣的文章
Swift 入门之简单语法(五)
查看>>
多视几何——三角化求解3D空间点坐标
查看>>
Drag+Drop和MouseClick
查看>>
AWS RDS 使用笔记
查看>>
Puppeteer VS Puppeteer-core
查看>>
Rxjava 执行阻塞的原因分析 tolist() observable.from()等。
查看>>
[转载]解决TCP网络传输“粘包”问题
查看>>
arm裸机驱动错误总结
查看>>
C# 程序性能提升篇-1、装箱和拆箱,枚举的ToString浅析
查看>>
lfs(systemv版本)学习笔记-第3页
查看>>
Postman-简单使用(1)
查看>>
[BJOI2014] 大融合
查看>>
最简单的一个java驱动jdbc链接mysql数据库
查看>>
Laravel 加载第三方类库的方法
查看>>
Binary Tree Level Order Traversal
查看>>
wcf契约版本处理与异常处理(随记)
查看>>
hlg1201Zombie’s Treasure Chest---数学问题
查看>>
1.基础数据类型的初识 字符串 bool 整型 if else elif
查看>>
Mybatis源码分析: MapperMethod功能讲解(1)
查看>>
Error: Cannot retrieve repository metadata (repomd.xml) for repository: addons.
查看>>