C#怎么判断安卓listvieww里的checkbox没有被选中

C# 怎么获得Listview控件里的Checkbox的索引值?
[问题点数:20分,结帖人hgyin212314]
本版专家分:115
结帖率 92%
CSDN今日推荐
本版专家分:232
本版专家分:816296
2012年 荣获名人称号
2010年 总版技术专家分年内排行榜第一2009年 总版技术专家分年内排行榜第一
2011年 总版技术专家分年内排行榜第二
2011年3月 总版技术专家分月排行榜第一2011年2月 总版技术专家分月排行榜第一2011年1月 总版技术专家分月排行榜第一2010年12月 总版技术专家分月排行榜第一2010年11月 总版技术专家分月排行榜第一2010年10月 总版技术专家分月排行榜第一2010年9月 总版技术专家分月排行榜第一2010年8月 总版技术专家分月排行榜第一2010年7月 总版技术专家分月排行榜第一2010年6月 总版技术专家分月排行榜第一2010年5月 总版技术专家分月排行榜第一2010年3月 总版技术专家分月排行榜第一2010年4月 总版技术专家分月排行榜第一2010年2月 总版技术专家分月排行榜第一2010年1月 总版技术专家分月排行榜第一2009年12月 总版技术专家分月排行榜第一2009年11月 总版技术专家分月排行榜第一2009年10月 总版技术专家分月排行榜第一2009年8月 总版技术专家分月排行榜第一2009年7月 总版技术专家分月排行榜第一2009年6月 总版技术专家分月排行榜第一
匿名用户不能发表回复!|
其他相关推荐C#里,如何在listview控件的其他列里添加checkbox控件
把CheckBox控件添加到Listview控件的其他列里去
09-11-21 &匿名提问
建包含 ListView 和 TreeView 控件的窗体在“文件”菜单上指向“新建”,然后单击“项目”。在“新建项目”对话框中,请执行以下操作: 在“项目类型”窗格中选择“Visual Basic 项目”或“Visual C# 项目”。在“模板”窗格中选择“Windows 应用程序”。单击“确定”。随即便会创建一个新的 Windows 窗体项目。向该窗体添加一个 SplitContainer 控件,并将其 Dock 属性设置为 Fill。向该窗体添加一个名为 imageList1 的 ImageList,然后使用属性浏览器按所列顺序添加两个图标:一个文件夹图标和一个文档图标。向该窗体添加一个名为 treeview1 的 TreeView 控件,将其置于 SplitContainer 控件的左侧。在 treeView1 的属性浏览器中执行以下操作:将 Dock 属性设置为 Fill。将 ImageList 属性设置为 imagelist1.向该窗体中添加一个名为 listView1 的 ListView 控件,将其置于 SplitContainer 控件的右侧。在 listview1 的属性浏览器中执行以下操作:将 Dock 属性设置为 Fill。将 View 属性设置为 Details。单击 Columns 属性中的椭圆 (),以打开 ColumnHeader 集合编辑器。 添加三列,并将其 Text 属性分别设置为 Name、Type 和 Last Modified。单击“确定”关闭对话框。将 SmallImageList 属性设置为 imageList1.实现代码以便将节点和子节点填充到 TreeView 中。示例代码从文件系统读取,并且要求 imageList1 中存在两个之前添加的图标 folder.ico 和 doc.ico。Visual Basic 复制代码Private Sub PopulateTreeView()
  Dim rootNode As TreeNode   Dim info As New DirectoryInfo(&C:\Documents and Settings&)   If info.Exists Then       rootNode = New TreeNode(info.Name)       rootNode.Tag = info       GetDirectories(info.GetDirectories(), rootNode)       treeView1.Nodes.Add(rootNode)   End IfEnd SubPrivate Sub GetDirectories(ByVal subDirs() As DirectoryInfo, _   ByVal nodeToAddTo As TreeNode)   Dim aNode As TreeNode   Dim subSubDirs() As DirectoryInfo   Dim subDir As DirectoryInfo   For Each subDir In subDirs       aNode = New TreeNode(subDir.Name, 0, 0)       aNode.Tag = subDir       aNode.ImageKey = &folder&       subSubDirs = subDir.GetDirectories()       If subSubDirs.Length && 0 Then           GetDirectories(subSubDirs, aNode)       End If       nodeToAddTo.Nodes.Add(aNode)   Next subDirEnd SubC# 复制代码       private void PopulateTreeView()       {           TreeNode rootN          
          DirectoryInfo info = new DirectoryInfo(@&C:\Documents and Settings&);           if (info.Exists)           {               rootNode = new TreeNode(info.Name);               rootNode.Tag =               GetDirectories(info.GetDirectories(), rootNode);               treeView1.Nodes.Add(rootNode);           }       }       private void GetDirectories(DirectoryInfo[] subDirs,
          TreeNode nodeToAddTo)       {           TreeNode aN           DirectoryInfo[] subSubD           foreach (DirectoryInfo subDir in subDirs)           {               aNode = new TreeNode(subDir.Name, 0, 0);               aNode.Tag = subD               aNode.ImageKey = &folder&;               subSubDirs = subDir.GetDirectories();               if (subSubDirs.Length != 0)               {                   GetDirectories(subSubDirs, aNode);               }               nodeToAddTo.Nodes.Add(aNode);           }       }由于以前的代码使用 System.IO 命名空间,因此需要在窗体顶部添加 using 或 import 语句。
请登录后再发表评论!ListView中使用checkbox实现单选、多选等 - 简书
ListView中使用checkbox实现单选、多选等
ListView中使用checkbox实现单选、多选等
有的鱼是永远都关不住的 因为他们属于天空 ——《大鱼海棠》
一、首先新建布局文件,实现一个item的布局
&?xml version="1.0" encoding="utf-8"?&
&LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" &
&RelativeLayout
android:id="@+id/outpatient_check_hospital"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5.0dip"
android:layout_marginLeft="12.599976dip"
android:layout_marginRight="12.599976dip"
android:gravity="center_vertical"&
&LinearLayout
android:id="@+id/linear_layout_up"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal" &
&ImageView
android:layout_width="10dip"
android:layout_height="10dip"
android:adjustViewBounds="false" /&
android:id="@+id/tv_device_name"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_weight="3"
android:text="名称"
android:gravity="left|center"
android:paddingLeft="30dp"
android:textColor="#ff323232"
android:textSize="16.0sp"
android:typeface="monospace" /&
android:id="@+id/checkBox1"
android:layout_width="0dp"
android:layout_weight="1"
android:gravity="center"
android:layout_height="fill_parent"
android:focusable="false"
android:clickable="false"/&
&/LinearLayout&
&/RelativeLayout&
&/LinearLayout&
显示效果图如下。
二、在页面布局文件中添加ListView控件。
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/listView1"
android:layout_weight="1" /&
三、新建ListViewAdapter实现BaseAdapter
package com.cover.xushun.
import android.content.C
import android.util.L
import android.view.LayoutI
import android.view.V
import android.view.ViewG
import android.widget.BaseA
import android.widget.CheckB
import android.widget.LinearL
import android.widget.TextV
import java.util.ArrayL
import java.util.HashM
* Created by xushun on 16/7/5.
public class ListViewAdapter extends BaseAdapter {
private ArrayList&String&
// 用来控制CheckBox的选中状况
private static HashMap&Integer, Boolean& isS
class ViewHolder {
TextView tvN
LinearLayout LL;
public ListViewAdapter(Context context, ArrayList&String& beans,HashMap&Integer,Boolean& isSelected) {
// TODO Auto-generated constructor stub
this.beans =
this.context =
this.isSelected = isS
// 初始化数据
initDate();
// 初始化isSelected的数据
private void initDate() {
for (int i = 0; i & beans.size(); i++) {
getIsSelected().put(i, false);
public int getCount() {
// TODO Auto-generated method stub
return beans.size();
public Object getItem(int position) {
// TODO Auto-generated method stub
return beans.get(position);
public long getItemId(int position) {
// TODO Auto-generated method stub
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
Log.v("MyListViewBase", "getView " + position + " " + convertView);
ViewHolder holder =
String bean = beans.get(position);
LayoutInflater inflater = LayoutInflater.from(context);
if (convertView == null) {
convertView = inflater.inflate(
R.layout.assist_device_binding_list_item, null);
holder = new ViewHolder();
holder.cb = (CheckBox) convertView.findViewById(R.id.checkBox1);
holder.tvName = (TextView) convertView.findViewById(R.id.tv_device_name);
holder.LL = (LinearLayout) convertView.findViewById(R.id.linear_layout_up);
convertView.setTag(holder);
// 取出holder
holder = (ViewHolder) convertView.getTag();
System.out.println(isSelected.toString());
holder.tvName.setText(bean);
// 监听checkBox并根据原来的状态来设置新的状态
holder.LL.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
System.out.println("点击:"+position);
if (isSelected.get(position)) {
isSelected.put(position, false);
setIsSelected(isSelected);
isSelected.put(position, true);
setIsSelected(isSelected);
notifyDataSetChanged();
// 根据isSelected来设置checkbox的选中状况
holder.cb.setChecked(getIsSelected().get(position));
return convertV
public static HashMap&Integer, Boolean& getIsSelected() {
return isS
public static void setIsSelected(HashMap&Integer, Boolean& isSelected) {
ListViewAdapter.isSelected = isS
其中重要的是 ** HashMap&Integer, Boolean& isSelected 它记录了每个checkbox的选中状态,当checkbox的点击事件触发后,我们首先判断isSelected中记录的是选中还是未选中,然后来改变选中状态。再来设置checkbox的状态。当我们在使用增删列表项目的时候一定要记着改变isSelected的长度以及对应的状态。**
四、在acitivity中使用
// TODO Auto-generated method stub
listView = (ListView) findViewById(R.id.listView1);
for (int i = 0; i & beans1.size(); i++) {
System.out.println("beans1 " + i + "
:" + beans1.get(i));
isselected = new HashMap&Integer,Boolean&();
adapter = new ListViewAdapter(DeleteCover.this, beans1,isselected);
listView.setAdapter(adapter);
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
delete_sureBtn = (Button) findViewById(R.id.delete_sureBtnIds);
delete_sureBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (beans1.size() & 0) {
isselected = adapter.getIsSelected();
for (int i = 0; i & isselected.size(); i++) {
if (isselected.get(i).equals(true)) {
String coverid = coverArray.get(i).get("coverid").toString();
String[] params = new String[]{USER_NAME, coverid, TOKEN};
coverArray.remove(i);
beans1.remove(i);
isselected.put(i, false);
isselected.remove(isselected.size() - 1);
new deleteCoverTask().execute(params);
adapter.notifyDataSetChanged();
在测试时候如果不增加删除item 后也对应删除isSelect中的数据,就会出现原本删除item后原来的位置的checkbox的状态变为之前的删除的那个的状态。所以这段代码很重要。
最终效果展示
Gif_359.gif
最后留下个小问题,欢迎尝试。
在我们自定义的view中使用到了onClickListener来监听checkbox的点击事件,那么如果我们使用onCheckedChangeListener来做呢?会有什么需要注意的地方;另外,如果我们在点击listview的item时也来改变checkbox的状态时又该怎么处理
硬件杀手,代码狗!
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金 相信有很多...
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金相信有很多朋友...
CheckBox本为复选框,仍然可以当单选框用 自定义ListView item中包含一个textview 和checkbox,checkbox选中级别高于item,故在xml中进行屏蔽 单选方法:(该方法同样适用于radiobutton) main.xml GroupAd...
翻译自“Collection View Programming Guide for iOS” 0 关于iOS集合视图 集合视图是用灵活的和可变的布局来显示有序的数据项集合的一种方式。最常用来显示类似网格布局的项,但在iOS中不仅仅只能用来显示行和列。在集合视图中,通过继承可...
Android四大组件: activity: activity的生命周期:activity是context的子类,同时实现了window.callback 和 keyevent.callback.可以处理与窗体用户交互的事件。activity从创建到销毁有多种状态,在这些状...
不管我之前多么喜欢自己的工作,现在我只是一个在家待产的准妈妈,我常对朋友戏称自己是无业游民,但心里知道这几个月我赚了很多,不只是人民币带来的兴奋,最重要的是它让我在角色转变的过程中打开了一扇门 一开始我只是为了打发时间
一下子从节奏紧张的工作中脱离出来时,轻松的日...
余秋雨的这本散文合集读来倒不会看不下去,印象最深的前两个部分道士塔、莫高窟,历史的悲剧和厚重,读的过程中也弥漫着悲伤,因为王圆簏的无知而产生的莫高窟悲剧。整本书写得都是如今大热景点的各个历史文化,在向我们介绍曾经的历史文化,我很想把书中的各个地方都走一遍,他里面描写江南也是...
创石记·琥珀汇率先推出互联网无边界商业模式,期许在未来的市场中占据最大的比重。琥珀汇平台打破现有的市场局限,实现从”区域的市场”到“无边界的全国市场”的转变,帮助生产商和经销商瞬间实现从小到大的市场突破。 1
供需对接:从“盲目”到“精准”的升级
4.“小笼包”好的标准备是什么?【识别概括技术】 1.结构思考力的第一层:理解里的“识别概括技术” 引出案例:好的小笼包标准是什么? 1)皮薄 2)汁多 3)陷多 4)肉鲜 2:隐形思维显性化:梳理个人或者他人传递给我们信息的思考结构 识别:识别信息中的事实与个人观点或判断...
读大学前不曾见过紫色的番薯,家里也只有白薯和红薯,冬天埋到温热的土灰里,常被祖母取笑为“贫民的食物”,吃起来却香甜的,带有特殊的满足感。怎么一到了大城市,白薯见不着,红薯倒有一些,而这些紫色的,个头小很多的番薯,圆滚滚地躺在超市的蔬菜格子里,渐渐取代了红白薯在我们心中的地位...14:02 提问
C#的Froms的ListView的复选框如何实现单独一列居中显示
就如我上传的图片一样,复选框单独的一列显示,查了很多网上的文献都没有解决
按赞数排序
把表头去掉就更像listview了
直接用DataGridView代替ListView
你新建一个winforms项目,窗体叫做form1
打开form1.designer.cs
复制以下代码:
namespace Q695397
partial class Form1
/// &summary&
/// Required designer variable.
/// &/summary&
private System.ComponentModel.IContainer components =
/// &summary&
/// Clean up any resources being used.
/// &/summary&
/// &param name="disposing"&true if managed resource otherwise, false.&/param&
protected override void Dispose(bool disposing)
if (disposing && (components != null))
components.Dispose();
base.Dispose(disposing);
#region Windows Form Designer generated code
/// &summary&
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// &/summary&
private void InitializeComponent()
this.dataGridView1 = new System.Windows.Forms.DataGridView();
this.Column1 = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.Column2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column3 = new System.Windows.Forms.DataGridViewTextBoxColumn();
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
this.SuspendLayout();
// dataGridView1
this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoS
this.dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.Column1,
this.Column2,
this.Column3});
this.dataGridView1.Location = new System.Drawing.Point(12, 12);
this.dataGridView1.Name = "dataGridView1";
this.dataGridView1.RowHeadersVisible =
this.dataGridView1.Size = new System.Drawing.Size(354, 246);
this.dataGridView1.TabIndex = 0;
// Column1
this.Column1.Frozen =
this.Column1.HeaderText = "选择";
this.Column1.Name = "Column1";
// Column2
this.Column2.HeaderText = "名称";
this.Column2.Name = "Column2";
// Column3
this.Column3.HeaderText = "数量";
this.Column3.Name = "Column3";
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.F
this.ClientSize = new System.Drawing.Size(444, 341);
this.Controls.Add(this.dataGridView1);
this.Name = "Form1";
this.Text = "Form1";
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit();
this.ResumeLayout(false);
#endregion
private System.Windows.Forms.DataGridView dataGridView1;
private System.Windows.Forms.DataGridViewCheckBoxColumn Column1;
private System.Windows.Forms.DataGridViewTextBoxColumn Column2;
private System.Windows.Forms.DataGridViewTextBoxColumn Column3;
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐android--实现ListView上的CheckBox全选、取消选择、反选功能
效果图如下:
1、main.xml
&?xml version="1.0"
encoding="utf-8"?&&
&RelativeLayout xmlns:android=""&
android:layout_width="fill_parent"&
android:layout_height="fill_parent"&
android:orientation="horizontal"
&TextView&
android:id="@+id/tv"&
android:layout_width="fill_parent"&
android:layout_height="wrap_content"&
android:layout_gravity="center_vertical"
&LinearLayout&
android:id="@+id/line"&
android:layout_width="fill_parent"&
android:layout_height="50dp"&
android:layout_below="@+id/tv"&
android:orientation="horizontal"
&&&&&&&&&&&
android:id="@+id/bt_selectall"&
&&&&&&&&&&&
android:layout_width="80dp"&
&&&&&&&&&&&
android:layout_height="fill_parent"&
&&&&&&&&&&&
android:text="全选" /&&
&&&&&&&&&&&&
&&&&&&&&&&&
android:id="@+id/bt_cancleselectall"&
&&&&&&&&&&&
android:layout_width="80dp"&
&&&&&&&&&&&
android:layout_height="fill_parent"&
&&&&&&&&&&&
android:text="反选" /&&
&&&&&&&&&&&
android:id="@+id/bt_deselectall"&
&&&&&&&&&&&
android:layout_width="100dp"&
&&&&&&&&&&&
android:layout_height="fill_parent"&
&&&&&&&&&&&
android:text="取消选择" /&&
&/LinearLayout&&
&ListView&
android:id="@+id/lv"&
android:layout_width="fill_parent"&
android:layout_height="fill_parent"&
android:layout_below="@+id/line"
&/RelativeLayout&&&
2、listviewitem.xml
&?xml version="1.0"
encoding="utf-8"?&
&LinearLayout xmlns:android=""&
android:layout_width="fill_parent"&
android:layout_height="fill_parent"&
android:orientation="horizontal"
&TextView&
android:id="@+id/item_tv"&
android:layout_width="0dp"&
android:layout_height="wrap_content"&
android:layout_gravity="center_vertical"&
android:layout_weight="1" /&&
&CheckBox&
android:id="@+id/item_cb"&
android:layout_width="wrap_content"&
android:layout_height="wrap_content"&
android:clickable="false"&
android:focusable="false"&
android:focusableInTouchMode="false"&
android:gravity="center_vertical"
&/LinearLayout&&
3、MyAdapter.java
package com.example.
import java.util.ArrayL&
import java.util.HashM&
import android.content.C&
import android.view.LayoutI&
import android.view.V&
import android.view.ViewG&
import android.widget.BaseA&
import android.widget.CheckB&
import android.widget.TextV&
public class MyAdapter extends BaseAdapter
填充数据的list&
&&& private
ArrayList&String&
用来控制CheckBox的选中状况&
&&& private
static HashMap&Integer, Boolean&
&&& private
用来导入布局&
&&& private
LayoutInflater inflater =&
&&& public
MyAdapter(ArrayList&String& list,
Context context) {&
this.context =&
this.list =&
inflater = LayoutInflater.from(context);&
isSelected = new HashMap&Integer,
Boolean&();&
// 初始化数据&
initDate();&
初始化isSelected的数据&
&&& private void
initDate() {&
for (int i = 0; i & list.size(); i++)
&&&&&&&&&&&
getIsSelected().put(i, false);&
@Override&
&&& public int
getCount() {&
return list.size();&
@Override&
&&& public
Object getItem(int position) {&
return list.get(position);&
@Override&
&&& public long
getItemId(int position) {&
@Override&
&&& public View
getView(int position, View convertView, ViewGroup parent)
ViewHolder holder =&
if (convertView == null) {&
&&&&&&&&&&&
// 获得ViewHolder对象&
&&&&&&&&&&&
holder = new ViewHolder();&
&&&&&&&&&&&
// 导入布局并赋值给convertview&
&&&&&&&&&&&
convertView = inflater.inflate(R.layout.listviewitem,
&&&&&&&&&&&
holder.tv = (TextView)
convertView.findViewById(R.id.item_tv);&
&&&&&&&&&&&
holder.cb = (CheckBox)
convertView.findViewById(R.id.item_cb);&
&&&&&&&&&&&
// 为view设置标签&
&&&&&&&&&&&
convertView.setTag(holder);&
&&&&&&&&&&&
// 取出holder&
&&&&&&&&&&&
holder = (ViewHolder) convertView.getTag();&
// 设置list中TextView的显示&
holder.tv.setText(list.get(position));&
// 根据isSelected来设置checkbox的选中状况&
holder.cb.setChecked(getIsSelected().get(position));&
return convertV&
&&& public
static HashMap&Integer, Boolean&
getIsSelected() {&
return isS&
&&& public
static void setIsSelected(HashMap&Integer,
Boolean& isSelected) {&
MyAdapter.isSelected = isS&
&&& public
static class ViewHolder {&
4、Ex_checkboxActivity.java
package com.example.
import java.util.ArrayL
import com.example.checkboxactivity.MyAdapter.ViewH
import android.app.A
import android.os.B
import android.view.V
import android.view.View.OnClickL
import android.widget.AdapterV
import android.widget.AdapterView.OnItemClickL
import android.widget.B
import android.widget.ListV
import android.widget.TextV
public class Ex_checkboxActivity extends Activity
&&& private
&&& private
MyAdapter mA&
&&& private
ArrayList&String&
&&& private
Button bt_&
&&& private
Button bt_&
&&& private
Button bt_&
&&& private int
checkN // 记录选中的条目数量&
&&& private
TextView tv_// 用于显示选中的条目数量&
@Override&
&&& public void
onCreate(Bundle savedInstanceState) {&
super.onCreate(savedInstanceState);&
setContentView(R.layout.main);&
lv = (ListView) findViewById(R.id.lv);&
bt_selectall = (Button)
findViewById(R.id.bt_selectall);&
bt_cancel = (Button)
findViewById(R.id.bt_cancleselectall);&
bt_deselectall = (Button)
findViewById(R.id.bt_deselectall);&
tv_show = (TextView) findViewById(R.id.tv);&
list = new
ArrayList&String&();&
// 为Adapter准备数据&
initDate();&
// 实例化自定义的MyAdapter&
mAdapter = new MyAdapter(list, this);&
// 绑定Adapter&
lv.setAdapter(mAdapter);&
// 全选按钮的回调接口&
bt_selectall.setOnClickListener(new OnClickListener()
&&&&&&&&&&&
@Override&
&&&&&&&&&&&
public void onClick(View v) {&
&&&&&&&&&&&&&&&
// 遍历list的长度,将MyAdapter中的map值全部设为true&
&&&&&&&&&&&&&&&
for (int i = 0; i & list.size(); i++)
&&&&&&&&&&&&&&&&&&&
MyAdapter.getIsSelected().put(i, true);&
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
// 数量设为list的长度&
&&&&&&&&&&&&&&&
checkNum = list.size();&
&&&&&&&&&&&&&&&
// 刷新listview和TextView的显示&
&&&&&&&&&&&&&&&
dataChanged();&
&&&&&&&&&&&
// 反选按钮的回调接口&
bt_cancel.setOnClickListener(new OnClickListener()
&&&&&&&&&&&
@Override&
&&&&&&&&&&&
public void onClick(View v) {&
&&&&&&&&&&&&&&&
// 遍历list的长度,将已选的设为未选,未选的设为已选&
&&&&&&&&&&&&&&&
for (int i = 0; i & list.size(); i++)
&&&&&&&&&&&&&&&&&&&
if (MyAdapter.getIsSelected().get(i)) {&
&&&&&&&&&&&&&&&&&&&&&&&
MyAdapter.getIsSelected().put(i, false);&
&&&&&&&&&&&&&&&&&&&&&&&
checkNum--;&
&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&
MyAdapter.getIsSelected().put(i, true);&
&&&&&&&&&&&&&&&&&&&&&&&
checkNum++;&
&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
// 刷新listview和TextView的显示&
&&&&&&&&&&&&&&&
dataChanged();&
&&&&&&&&&&&
// 取消按钮的回调接口&
bt_deselectall.setOnClickListener(new OnClickListener()
&&&&&&&&&&&
@Override&
&&&&&&&&&&&
public void onClick(View v) {&
&&&&&&&&&&&&&&&
// 遍历list的长度,将已选的按钮设为未选&
&&&&&&&&&&&&&&&
for (int i = 0; i & list.size(); i++)
&&&&&&&&&&&&&&&&&&&
if (MyAdapter.getIsSelected().get(i)) {&
&&&&&&&&&&&&&&&&&&&&&&&
MyAdapter.getIsSelected().put(i, false);&
&&&&&&&&&&&&&&&&&&&&&&&
checkNum--;// 数量减1&
&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
// 刷新listview和TextView的显示&
&&&&&&&&&&&&&&&
dataChanged();&
&&&&&&&&&&&
// 绑定listView的监听器&
lv.setOnItemClickListener(new OnItemClickListener()
&&&&&&&&&&&
@Override&
&&&&&&&&&&&
public void
onItemClick(AdapterView&?& arg0, View
arg1, int arg2,&
&&&&&&&&&&&&&&&&&&&
long arg3) {&
&&&&&&&&&&&&&&&
取得ViewHolder对象,这样就省去了通过层层的findViewById去实例化我们需要的cb实例的步骤&
&&&&&&&&&&&&&&&
ViewHolder holder = (ViewHolder)
arg1.getTag();&
&&&&&&&&&&&&&&&
// 改变CheckBox的状态&
&&&&&&&&&&&&&&&
holder.cb.toggle();&
&&&&&&&&&&&&&&&
// 将CheckBox的选中状况记录下来&
&&&&&&&&&&&&&&&
MyAdapter.getIsSelected().put(arg2,
holder.cb.isChecked());&
&&&&&&&&&&&&&&&
// 调整选定条目&
&&&&&&&&&&&&&&&
if (holder.cb.isChecked() == true) {&
&&&&&&&&&&&&&&&&&&&
checkNum++;&
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&
checkNum--;&
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
// 用TextView显示&
&&&&&&&&&&&&&&&
tv_show.setText("已选中" + checkNum + "项");&
&&&&&&&&&&&
初始化数据&
&&& private void
initDate() {&
for (int i = 0; i & 15; i++)
&&&&&&&&&&&
list.add("data" + " " + i);&
刷新listview和TextView的显示&
&&& private void
dataChanged() {&
// 通知listView刷新&
mAdapter.notifyDataSetChanged();&
// TextView显示最新的选中数目&
tv_show.setText("已选中" + checkNum + "项");&
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 c#listview 的文章

 

随机推荐