ListView与CheckBox组合实现单选
main.xml配置文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" > <TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" /> <ListView android:id="@+id/lv_single_list"
android:descendantFocusability="blocksDescendants"
android:fastScrollEnabled="true" android:clickable="true"
android:divider="@drawable/divider_horizontal_timeline"
android:dividerHeight="1.0dip" android:layout_width="fill_parent"
android:layout_height="400dp" android:scrollingCache="false"
android:fadingEdge="none" android:cacheColorHint="#00000000" /> </LinearLayout>
适配器adapter的配置文件list_adapter.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center"
android:orientation="horizontal"> <TextView android:id="@+id/tv_zxing_section_sequence"
android:layout_width="50dp" android:layout_height="wrap_content"
android:textSize="16sp" /> <TextView android:id="@+id/tv_zxing_sectionname"
android:layout_width="210dp" android:layout_height="wrap_content"
android:textSize="14sp" android:layout_marginLeft="10dp" /> <CheckBox android:id="@+id/item_cb_section" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:focusable="false"
android:focusableInTouchMode="false" android:clickable="false"
android:layout_alignParentTop="true" android:layout_marginLeft="5dp" /> </LinearLayout>
SingleListChoiceActivity.java package com.amker.test; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.ListView;
import android.widget.TextView; public class SingleListChoiceActivity extends Activity { private ListView listView; private Map<Integer, Boolean> isSelected; private List beSelectedData = new ArrayList(); ListAdapter adapter; private List cs = null; @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
listView = (ListView) this.findViewById(R.id.lv_single_list);
cs = new ArrayList();
cs.add("aaaaaa");
cs.add("bbbbbb");
cs.add("cccccc");
cs.add("dddddd");
cs.add("eeeeee");
cs.add("ffffff");
cs.add("gggggg");
cs.add("hhhhhh");
cs.add("jjjjjj"); initList();
} void initList(){ if (cs == null || cs.size() == )
return;
if (isSelected != null)
isSelected = null;
isSelected = new HashMap<Integer, Boolean>();
for (int i = ; i < cs.size(); i++) {
isSelected.put(i, false);
}
// 清除已经选择的项
if (beSelectedData.size() > ) {
beSelectedData.clear();
}
adapter = new ListAdapter(this, cs);
listView.setAdapter(adapter);
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
adapter.notifyDataSetChanged();
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Log.i("map", cs.get(position).toString());
}
}); } class ListAdapter extends BaseAdapter { private Context context; private List cs; private LayoutInflater inflater; public ListAdapter(Context context, List data) {
this.context = context;
this.cs = data;
initLayoutInflater();
} void initLayoutInflater() {
inflater = LayoutInflater.from(context);
} public int getCount() {
return cs.size();
} public Object getItem(int position) {
return cs.get(position);
} public long getItemId(int position) {
return ;
} public View getView(int position1, View convertView, ViewGroup parent) {
ViewHolder holder = null;
View view = null;
final int position = position1;
if (convertView == null) {
convertView = inflater.inflate(R.layout.list_adapter,
null);
holder = new ViewHolder();
holder.checkBox = (CheckBox) convertView
.findViewById(R.id.item_cb_section);
holder.tv_sequence = (TextView) convertView
.findViewById(R.id.tv_zxing_section_sequence);
holder.tv_sectionname = (TextView) convertView
.findViewById(R.id.tv_zxing_sectionname);
convertView.setTag(holder);
} else {
view = convertView;
holder = (ViewHolder) view.getTag();
}
holder.checkBox.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// 当前点击的CB
boolean cu = !isSelected.get(position);
// 先将所有的置为FALSE
for(Integer p : isSelected.keySet()) {
isSelected.put(p, false);
}
// 再将当前选择CB的实际状态
isSelected.put(position, cu);
ListAdapter.this.notifyDataSetChanged();
beSelectedData.clear();
if(cu) beSelectedData.add(cs.get(position));
}
});
holder.tv_sequence.setText(String.valueOf(position + ));
holder.tv_sectionname.setText(cs.get(position).toString());
holder.checkBox.setChecked(isSelected.get(position));
return convertView;
}
} class ViewHolder { CheckBox checkBox; TextView tv_sequence; TextView tv_sectionname; }
}
ListView与CheckBox组合实现单选的更多相关文章
- ListView与RadioButton组合——自定义单选列表
标签: radiobuttonlistviewandroidlayout 2013-09-10 11:13 19396人阅读 评论(8) 收藏 举报 分类: Android(19) 版权声明: ...
- 【转】ListView与RadioButton组合——自定义单选列表
原文网址:http://blog.csdn.net/checkin001/article/details/11519131 Android自带的RadioButton单选框只支持添加文字,我们自己写A ...
- 基于CSS3自定义美化复选框Checkbox组合
今天我们要来分享一组非常漂亮的CSS3自定义复选框checkbox,每一个checkbox都有其各自的特点.有几款checkbox在选中的情况下还会出现动画效果,非常不错的CSS3自定义美化check ...
- android UI进阶之实现listview中checkbox的多选与记录
今天继续和大家分享涉及到listview的内容.在很多时候,我们会用到listview和checkbox配合来提供给用户一些选择操作.比如在一个 清单页面,我们需要记录用户勾选了哪些条目.这个的实现并 ...
- 【转】android UI进阶之实现listview中checkbox的多选与记录--不错
原文网址:http://www.cnblogs.com/notice520/archive/2012/02/17/2355415.html 今天继续和大家分享涉及到listview的内容.在很多时候, ...
- Android高级控件(一)——ListView绑定CheckBox实现全选,增加和删除等功能
Android高级控件(一)--ListView绑定CheckBox实现全选,增加和删除等功能 这个控件还是挺复杂的,也是项目中应该算是比较常用的了,所以写了一个小Demo来讲讲,主要是自定义adap ...
- winform利用ImageList控件和ListView控件组合制作图片文件浏览器
winform利用ImageList控件和ListView控件组合制作图片文件浏览器,见图,比较简单,实现LISTVIEW显示文件夹图片功能. 1.选择文件夹功能代码: folderBrowserDi ...
- ListView 自己定义BaseAdapter实现单选打勾(无漏洞)
(假设须要完整demo,请评论留下邮箱) (眼下源代码已经不发送.假设须要源代码,加qq316701116.不喜勿扰) 近期由于一个项目的原因须要自己定义一个BaseAdapter实现ListVIew ...
- Android高级控件(一)——ListView绑定CheckBox实现全选,添加和删除等功能
Android高级控件(一)--ListView绑定CheckBox实现全选,添加和删除等功能 这个控件还是挺复杂的.也是项目中应该算是比較经常使用的了,所以写了一个小Demo来讲讲,主要是自己定义a ...
随机推荐
- Linux驱动开发相关
一般用printk 查看/etc/sysconf文件,看看内核调试信息放到了哪里 打印的消息一般放在/var/log/messages文件里面. 如果你是在X Windows下的XTerm中insmo ...
- Unix/Linux环境C编程入门教程(40) 初识文件操作
1.函数介绍 close(关闭文件) 相关函数 open,fcntl,shutdown,unlink,fclose 表头文件 #include<unistd.h> 定义函数 int ...
- UVa1587.Digit Counting
题目连接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=247&p ...
- 【Cocos2d-X游戏实战开发】捕鱼达人之游戏场景的创建(六)
本系列学习教程使用的是cocos2d-x-2.1.4(最新版为cocos2d-x-2.1.5) 博主发现前两个系列的学习教程被严重抄袭,在这里呼吁大家请尊重开发者的劳动成果, 转载的时候请务必注 ...
- ListView之ArrayAdapter
ArrayAdapter 普通的显示listView子项,安卓的内置对象 使用方法: /* ListView :列表 通常有两个职责: a.将数据填充到布局 b.处理点击事件 一个ListView创建 ...
- spring + jdbc + extjs configuration
所有源代码能够訪问我的GitHub 有空没空的稻谷了几天,最终前后台跑通了,提供一套可用的配置文件. (因为与extjs整合,spring security的登录须要重写原handler.会在后面补上 ...
- chroot 与 jail
所谓“监牢”就是指通过chroot机制来更改某个进程所能看到的根文件夹,即将某进程限制在指定文件夹中,保证该进程仅仅能对该文件夹及其子文件夹的文件有所动作,从而保证整个server的安全. 创建chr ...
- 某APK中使用了动态注册BroadcastReceiver,Launcher中动态加载此APK出现java.lang.SecurityException异常的解决方法
在某APK中,通过如下方法动态注册了一个BroadcastReceiver,代码参考如下: @Override protected void onAttachedToWindow() { super. ...
- 【问题备注】VS2012不能输入代码,文字…
第一次遇到,非常奇怪,一个项目,VS2012能正常打开,但是不能输入代码. 对比分析发现,其他项目能正常work.在于一个问题就是,VS2012 右下角有个INS一直在转一直analyzing,而正常 ...
- 常用的方法,读取XML节点并赋值给List集合
一.前言 很多时候也可以直接在XML文件中配置好节点,在程序需要用到的时候,修改XML文件并不需要重新编译,这里是在极光推送中拿出来的一部分代码.代码简单,大家直接看例子吧. 二.实现过程 1.新创建 ...