关于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多选单选模式

  • 2016年12月29日 09:28
  • 20.39MB
  • 下载

自定义Dialog里listview的单选、多选

  • 2016年08月11日 14:38
  • 34.58MB
  • 下载

ListView的多选单选模式

直接上图 主要代码,设置listview的模式 //设置ListView模式为默认,CHOICE_MODE_NONE为默认,CHOICE_MODE_SINGLE为单选,CHOICE_MODE_...

LIstView的多选和单选

  • 2017年03月01日 18:07
  • 26.51MB
  • 下载

listview_单选多选

  • 2016年05月15日 19:58
  • 434KB
  • 下载

listview中checkbox多选单选删除

大家应该都在淘宝买过东西吧,购物车里面有个功能,就是点击编辑之后可以选择多个商品结算或者删除。最近也正好用到这个功能,一开始也不会写,到处找,找到一个比较好的,在此记录下来。1.其实最重要的就是ada...

listview中的单选按钮多选按钮

  • 2016年01月20日 14:28
  • 695KB
  • 下载

ListView的单选和多选

  • 2016年08月30日 21:54
  • 27.08MB
  • 下载

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

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

ListView实现单选多选

  • 2014年11月01日 21:42
  • 2.63MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于listview的单选和多选
举报原因:
原因补充:

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