关于listview的单选和多选

原创 2015年07月08日 11:25:35


nameAdapter=new adapter(MainActivity.this, list,listSelect);


adapter里

public adapter(Context context,List<String> listdata,List<Map<String, String>> listSelect) {
   // TODO Auto-generated constructor stub
   this.context=context;
   this.listdata=listdata;
   this.listSelect=listSelect;  //判断状态的集合
  }

holder.tName.setText(listdata.get(position));
   String state=listSelect.get(position).get("state");
   if (state.equals("0")) {
    holder.iState.setImageResource(R.drawable.home_socket_time_add_equipment_off);
   }else if (state.equals("1")) {
    holder.iState.setImageResource(R.drawable.home_socket_time_add_equipment_on);
   }


listView.setOnItemClickListener(new OnItemClickListener() {

   @Override
   public void onItemClick(AdapterView<?> arg0, View arg1, int position,
     long arg3) {
    //多选
    String s=listSelect.get(position).get("state");
    if (s.equals("0")) {
     Map<String, String> map=new HashMap<String, String>();
     map.put("state", "1");
     listSelect.set(position, map);
    }else if (s.equals("1")) {
     Map<String, String> map=new HashMap<String, String>();
     map.put("state", "0");
     listSelect.set(position, map);
    }
    nameAdapter.notifyDataSetChanged();
    System.out.println(listSelect);
    for (int i = 0; i < listSelect.size(); i++) {
     String ss=listSelect.get(i).get("state");
     if (ss.equals("1")) {
      Toast.makeText(MainActivity.this, "第"+(i+1)+"被选中", Toast.LENGTH_SHORT).show();
     }
    }
    
    //单选

 //首先初始化state的值  把上次点击的改为未点击
   /* for (int i = 0; i < listSelect.size(); i++) {
     
     Map<String, String> map=new HashMap<String, String>();
     map.put("state", "0");
     listSelect.set(i, map);
    }
    System.out.println("初始==="+listSelect);
    String s=listSelect.get(position).get("state");
    if (s.equals("0")) {
     Map<String, String> map1=new HashMap<String, String>();
     map1.put("state", "1");
     listSelect.set(position, map1);
    }else if (s.equals("1")) {
     Map<String, String> map1=new HashMap<String, String>();
     map1.put("state", "0");
     listSelect.set(position, map1);
    }
    System.out.println("点击后==="+listSelect);
    nameAdapter.notifyDataSetChanged();
    String ss=listSelect.get(position).get("state");
    if (ss.equals("1")) {
     Toast.makeText(MainActivity.this, "第"+(position+1)+"被选中",Toast.LENGTH_SHORT).show();
    }*/
   }
  });

重点是list.set(position,map)的使用

通过listview.onitemclick的监听来改变状态   如果是点击item里的控件来改变状态 就在adapter里写监听控件



最简单的ListView中实现单选和多选效果

一.无图无真相 二.关键代码 1.主布局 sample_main.xml(单选和多选切换,设置android:choiceMode,其他不变)...
  • JackiAndroid
  • JackiAndroid
  • 2015年08月03日 05:51
  • 2509

Android ListView 分分钟实现Item单选、多选效果

ListView中有一个属性:android:choiceMode,对应三个可选值: singleChoice 单选 multipleChoice 多选 none 默认情况,没有选中效果 在Lis...
  • u012248099
  • u012248099
  • 2017年01月09日 14:24
  • 4288

ListView 实现多选/单选

ListView自身带了单选、多选模式,可通过listview.setChoiceMode来设置: listview.setChoiceMode(ListView.CHOICE_MODE_MULTI...
  • ljfbest
  • ljfbest
  • 2014年11月01日 21:47
  • 24540

完美解决Android在listview添加checkbox实现单选多选操作问题

搬家后的博客链接: IT客栈 www.itkezhan.org 在Android某些开发需求当中,有时候需要在listveiw中加入checkbox实现单选,多选操作。表面上看上去只是改...
  • failure01
  • failure01
  • 2013年02月01日 02:53
  • 11614

ListView的单选、多选模式:以官方Demo为例

ListView的单选和多选模式使用频率比较高,这里介绍了官方Dmeo推荐的方式。
  • BrilliantEagle
  • BrilliantEagle
  • 2016年01月21日 00:20
  • 1441

Android开发技巧——自定义单选或多选的ListView

这篇其实应该是属于写自定义单选或多选的ListView的基础教程,无奈目前许多人对此的实现大多都绕了远路,反而使得这正常的写法倒显示有些技巧性了。 Android中,ListView可以设置choic...
  • maosidiaoxian
  • maosidiaoxian
  • 2015年05月20日 11:43
  • 11842

ListView自带单选和多选的特技Choice Mode

ListView本身带有单选和多选功能,也就是说在单选模式下,它能够记住当前选中的唯一的列表项;在多选模式下,它能够记住目前选取的所有的列表项。 这种选择模式共有4种CHOICE_MODE_NO...
  • changsimeng
  • changsimeng
  • 2017年01月09日 14:31
  • 1163

完美解决Android在listview添加checkbox实现单选多选操作问题

在Android某些开发需求当中,有时候需要在listveiw中加入checkbox实现单选,多选操作。表面上看上去只是改变checkbox那么简单,然而实际开发中,实现起来并不是那么得心应手。尤其当...
  • ct872587129
  • ct872587129
  • 2015年04月02日 21:57
  • 679

自定义ListView item包含checkbox实现单选和多选

CheckBox本为复选框,仍然可以当单选框用 自定义ListView item中包含一个textview 和checkbox,checkbox选中级别高于item,故在xml中进行屏蔽 单选方法...
  • onceing
  • onceing
  • 2016年02月25日 19:02
  • 2268

Android项目开发经验小结----ListView的单选模式和多选模式

最近公司做的一个项目像下面的二级联动功能。 一开始什么都没想,直接就左边RadioGroup右边CheckBox。写完后发现,代码量实在太多了,而且看起来乱糟糟的。 突然想起,ListView的...
  • Wenk_Chan
  • Wenk_Chan
  • 2015年11月23日 09:51
  • 1008
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于listview的单选和多选
举报原因:
原因补充:

(最多只允许输入30个字)