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组合实现单选的更多相关文章

  1. ListView与RadioButton组合——自定义单选列表

      标签: radiobuttonlistviewandroidlayout 2013-09-10 11:13 19396人阅读 评论(8) 收藏 举报  分类: Android(19)  版权声明: ...

  2. 【转】ListView与RadioButton组合——自定义单选列表

    原文网址:http://blog.csdn.net/checkin001/article/details/11519131 Android自带的RadioButton单选框只支持添加文字,我们自己写A ...

  3. 基于CSS3自定义美化复选框Checkbox组合

    今天我们要来分享一组非常漂亮的CSS3自定义复选框checkbox,每一个checkbox都有其各自的特点.有几款checkbox在选中的情况下还会出现动画效果,非常不错的CSS3自定义美化check ...

  4. android UI进阶之实现listview中checkbox的多选与记录

    今天继续和大家分享涉及到listview的内容.在很多时候,我们会用到listview和checkbox配合来提供给用户一些选择操作.比如在一个 清单页面,我们需要记录用户勾选了哪些条目.这个的实现并 ...

  5. 【转】android UI进阶之实现listview中checkbox的多选与记录--不错

    原文网址:http://www.cnblogs.com/notice520/archive/2012/02/17/2355415.html 今天继续和大家分享涉及到listview的内容.在很多时候, ...

  6. Android高级控件(一)——ListView绑定CheckBox实现全选,增加和删除等功能

    Android高级控件(一)--ListView绑定CheckBox实现全选,增加和删除等功能 这个控件还是挺复杂的,也是项目中应该算是比较常用的了,所以写了一个小Demo来讲讲,主要是自定义adap ...

  7. winform利用ImageList控件和ListView控件组合制作图片文件浏览器

    winform利用ImageList控件和ListView控件组合制作图片文件浏览器,见图,比较简单,实现LISTVIEW显示文件夹图片功能. 1.选择文件夹功能代码: folderBrowserDi ...

  8. ListView 自己定义BaseAdapter实现单选打勾(无漏洞)

    (假设须要完整demo,请评论留下邮箱) (眼下源代码已经不发送.假设须要源代码,加qq316701116.不喜勿扰) 近期由于一个项目的原因须要自己定义一个BaseAdapter实现ListVIew ...

  9. Android高级控件(一)——ListView绑定CheckBox实现全选,添加和删除等功能

    Android高级控件(一)--ListView绑定CheckBox实现全选,添加和删除等功能 这个控件还是挺复杂的.也是项目中应该算是比較经常使用的了,所以写了一个小Demo来讲讲,主要是自己定义a ...

随机推荐

  1. MessagerService总结

    一.整体工程图 二.messenger_service_binding.xml <?xml version="1.0" encoding="utf-8"? ...

  2. MCM1988 问题B_lingo_装货问题

    两辆平板车的装货问题有七种规格的包装箱要装到两辆铁路平板车上去包装箱的宽和高是一样的但厚度(t,以厘米计)及重量(,以公斤计)是不同的.下表给出了每种包装箱的厚度重量以及数量每辆平板车有10.2 米长 ...

  3. 【PAT L2-001】最短路计数

    给定一个无向带权网络,无负边,无重边和自环,每个顶点有一个正数权值.首先求特定原点s到终点d的最短路的个数:然后求所有最短路中顶点权值a[i]之和最大的那条,输出这条路径. 可用dijkstra算法求 ...

  4. [Linux] killall 、kill 、pkill 命令详解

    killall 命令 Linux系统中的killall命令用于杀死指定名字的进程(kill processes by name).我们可以使用kill命令杀死指定进程PID的进程,如果要找到我们需要杀 ...

  5. hdu 5430 Reflect (数学推导题)

    Problem Description We send a light from one point on a mirror material circle,it reflects N times a ...

  6. linux指定动态运行库的位置

    动态运行库在windows.linux下均广泛使用.windows下通常为dll文件,linux下为so文件.不过,对于部署程序,这两个系统查找依赖的运行库文件时却不一样.对于windows而言,优先 ...

  7. php利用pdo进行mysql的事务处理机制

    想进行php的事务处理有下面几个步骤 1.关闭自动提交 2.开启事务处理 3.有异常就自动抛出异常提示再回滚 4.开启自动提交 下面是一个小示例利用pdo进行的php mysql事务处理,注意mysq ...

  8. python list 去重

    print u'列表去重'a=[1,2,3,3,2,1,4,4,5,6,'a','a','b','c']print list(set(a))

  9. Visual Studio 2015 使用ODP.net进行EF开发

    刚转了新公司,以前公司都是用VS+MSSQL作为开发工具的 现在新公司由于数据库是Oracle,而且新公司比较小规模,开发团队也没有什么规范 访问数据库的方式一直使用ADO.net的DataTable ...

  10. strut2 自己定义文件上传错误信息

    在文件上传过程中我们能够指定拦截器对文件类型.后缀名.大小进行设定,action中的配置: <interceptor-ref name="fileUpload"> &l ...