Android ListView选中状态
来源:互联网 发布:字母哥身体数据 编辑:程序博客网 时间:2024/05/22 15:01
ListView的选中状态的实现实际上是点击时刷新Listview 将点击行设置为高亮显示,其他行刷新设置为原来的状态。
本文的ListView中是一个简单的TextView ,为TextView设置一个Selector 设置普通状态和选中状态。
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/dialog_text_select" android:state_enabled="false"></item> <item android:drawable="@android:color/transparent" android:state_enabled="true"></item></selector>
Item的写法和一般的没有区别,将android:background设置为上面的Selector就行了。
Adapter需要设置选中的位置:
public class KnowledgeAdapter extends BaseAdapter {private Context context;private LayoutInflater inflater;private List<KnowledgeInfo> listKnowledgeInfo;//当前选中的位置private int curPos;public KnowledgeAdapter(Context context, List<KnowledgeInfo> listKnowledgeInfo,int curPos) {this.context = context;this.inflater = LayoutInflater.from(context);this.listKnowledgeInfo = listKnowledgeInfo;this.curPos = curPos;}/** * 设置当前选中的视图 * @param curPro 选中位置 */public void setCurPro(int curPro){this.curPos = curPro;}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn listKnowledgeInfo.size();}@Overridepublic KnowledgeInfo getItem(int position) {// TODO Auto-generated method stubreturn listKnowledgeInfo.get(position);}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;}//public ViewHolder getItemView(int position){//return null;//}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ViewHolder viewHolder;if (convertView == null) {viewHolder = new ViewHolder();convertView = inflater.inflate(R.layout.knowledge_item, null);viewHolder.textKnowledeg = (TextView) convertView.findViewById(R.id.knowledge_text);convertView.setTag(viewHolder);}else{viewHolder = (ViewHolder) convertView.getTag();}//填充数据viewHolder.textKnowledeg.setText(listKnowledgeInfo.get(position).getName());if(curPos == position)viewHolder.textKnowledeg.setEnabled(false);else viewHolder.textKnowledeg.setEnabled(true);return convertView;}public class ViewHolder {private TextView textKnowledeg;}}然后对监听事件进行处理,每次点击都必须重新刷新整个ListView
listView1.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {curPos1 = position;knowledgeAdapter1.setCurPro(curPos1);refreshKnowledge(); knowledgeAdapter1.notifyDataSetChanged();}});
大致效果图如下
0 0
- Android ListView选中状态
- [android] ListView 选中状态的动态改变
- Android—滑动ListView保存选中状态
- Android ListView控件选中item项,并保持选中状态
- ListView设置选中状态
- android中去掉listview某人选中高亮状态
- android开发--listview中checkbox的选中状态
- Android ListView 设置选中item高亮状态
- android ListView 中CheckBox选中后,状态混乱的解决方案
- Android ListView点击确认时保留选中状态
- 设置ListView的选中状态:android:state_activated="true"
- 安卓ListView选中状态
- android listview选中某一行,成选中状态颜色高亮显示
- android listview选中某一行,成选中状态颜色高亮显示
- android listview选中某一行,成选中状态颜色高亮显示
- android listview选中某一行,成选中状态颜色高亮显示,ListView的UI显示中常见问题及解决办法
- Android ListView选中变色
- C# ListView 选中状态的判断方法
- 2014 图灵杯 问题 H: Fill The Bag
- Ubuntu 下配置无线网络
- 黑马程序员——IOS开发学习一 :Cocoa环境熟悉和Xcode使用——黑马 ios 技术博客
- 十三、oracle 数据字典和动态性能视图
- jQuery自定义标识符
- Android ListView选中状态
- asp.net mvc 使用Ajax调用Action 返回数据。
- iOS :undefined symbols for architecture x86_64错误解决方案
- leetcode——ZigZag Conversion
- 十四、oracle 数据库管理--管理表空间和数据文件
- 简单学习一下编译器原理
- MDX 函数库说明地址
- 厂商热衷扩增手机屏幕 大屏潮流掩盖创新疲态
- ceph存储 ceph集群ntp校时示例demo