Listview下的CheckBox设置全选或者全部选
来源:互联网 发布:淘宝卖家的钱在哪里 编辑:程序博客网 时间:2024/06/07 00:11
1.先在传入Adapter的数据源mode里面标记下是否选中
1 2 3 4 5 6 7 8 9101112131415161718192021222324
public class ChooseschoolMode { public String Schoolid; // 学校的编号 public String Name; // 学校的名称 boolean ischeck=false;//是否勾选 public String getSchoolid() { return Schoolid; } public void setSchoolid(String schoolid) { Schoolid = schoolid; } public String getName() { return Name; } public void setName(String name) { Name = name; } public boolean isIscheck() { return ischeck; } public void setIscheck(boolean ischeck) { this.ischeck = ischeck; }}
2.然后再adapter里面设置checkbox的状态为标记,同时回调出去到activity界面。
1 2 3 4 5 6 7 8 910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
public class ChooseschoolsAdapter extends BaseAdapter{ private Context context; private LayoutInflater inflater; private List<ChooseschoolMode> datas; private ChooseschoolsCallback callback; public ChooseschoolsAdapter(Context context,List<ChooseschoolMode> datas,ChooseschoolsCallback callback) { super(); this.context = context; inflater =LayoutInflater.from(context); this.datas = datas; this.callback=callback; } @Override public int getCount() { // TODO Auto-generated method stub return datas.size(); } @Override public Object getItem(int position) { // TODO Auto-generated method stub return datas.get(position); } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public View getView(final int position, View convertView, ViewGroup parent) { Holder holder = null; if (convertView == null) { holder = new Holder(); convertView = inflater.inflate(R.layout.chooseschools_item, null); holder.Schooname=(CheckBox)convertView.findViewById(R.id.chooseschool_cb); convertView.setTag(holder); } else { holder = (Holder) convertView.getTag(); } holder.Schooname.setText(datas.get(position).getName()); **holder.Schooname.setChecked(datas.get(position).isIscheck());//设置checkbox的选中为mode的标记** holder.Schooname.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { //回调 callback.Callback(position, isChecked); } }); return convertView; } public class Holder{ public CheckBox Schooname; }}
3.在activity里面的回调方法里拿到选中状态并设置数据源的标记,最后根据位置来循环所有的checkbox修改标记
1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
public class Chooseschools extends BaseActivity implements ChooseschoolsCallback{ ListView listView; List<ChooseschoolMode> date; ChooseschoolsAdapter adapter; ArrayList<String> schoolidlist; Request request; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.chooseschools); date = new ArrayList<ChooseschoolMode>(); request=new Request(); System.out.println(getCurrentUid()+"拿到的ID"); request.GetSchoollist(getCurrentUid(), this); ChooseschoolMode mode = new ChooseschoolMode(); mode.setName("全部学校"); date.add(mode); initView(); } private void initView() { setTopTitle("选择学校"); hideLeftIconButton(); Button btn1=(Button)findViewById(R.id.top_bar_left_btn_s); btn1.setVisibility(View.VISIBLE); btn1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { finish(); } }); Button btn2=(Button)findViewById(R.id.top_bar_right_btn); btn2.setVisibility(View.VISIBLE); btn2.setText("发送"); btn2.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //保存数据跳转界面 schoolidlist= new ArrayList<String>(); for (int i = 1; i < date.size(); i++) { if (date.get(i).isIscheck()) { schoolidlist.add(date.get(i).getSchoolid()); } } Bundle bundle = new Bundle(); bundle.putStringArrayList("schoolidlist", schoolidlist); Intent intent = new Intent(Chooseschools.this,PublishActivity.class); intent.putExtras(bundle); startActivity(intent); } }); listView=(ListView)findViewById(R.id.chooseschoollistview); adapter = new ChooseschoolsAdapter(this, date, this); listView.setAdapter(adapter); } **@Override public void Callback(int position, boolean isCheck) { //System.out.println("返回成功"); date.get(position).setIscheck(isCheck);//设置选中标记 if (position==0&&isCheck==true) { for (int i = 0; i < date.size(); i++) { date.get(i).setIscheck(true); } adapter.notifyDataSetChanged(); }else if (position==0&&isCheck==false) { for (int i = 0; i < date.size(); i++) { date.get(i).setIscheck(false); } adapter.notifyDataSetChanged(); }// for (int i = 0; i < date.size(); i++) {// System.out.println(date.get(i).isIscheck());// } }** @Override public void resolveResultData(IResult result) { System.out.println("请求成功"); if (result instanceof GetSchoollistResult) { GetSchoollistResult getschoollistresult = (GetSchoollistResult) result; for (int i = 0; i < getschoollistresult.Schools.size(); i++) { ChooseschoolMode cMode= new ChooseschoolMode(); cMode.setName(getschoollistresult.Schools.get(i).Name); cMode.setSchoolid(getschoollistresult.Schools.get(i).Schoolid); date.add(cMode); //System.out.println(getschoollistresult.Schools.get(i).Name); } adapter.notifyDataSetChanged(); } }}
声明:eoe文章著作权属于作者,受法律保护,转载时请务必以超链接形式附带如下信息
原文作者: Mr河马
原文地址: http://my.eoe.cn/1192627/archive/21746.html
0 0
- Listview下的CheckBox设置全选或者全部选
- Jquery---checkbox的全选或者全部取消
- checkbox全选和全部选
- listView进行CheckBox的全选、反选
- js checkbox全选 反选 取消全部设置表单checkbox复选框勾选
- ListView CheckBox 全选,单选
- 全选全部checkbox
- js checkbox全选 反选 取消全部设置表单html复选框勾选
- 带checkbox的listView 实现多选,全选,反选
- checkbox的listView实现多选,全选,反选
- checkbox的listView 实现多选,全选,反选
- 实现listview中checkbox的全选、反选和取消
- ListView+CheckBox实现全部隐藏或者显示问题
- listview+checkBox的全选,批量删除
- 带checkBox的ListView全选和取消。
- ListView+CheckBox实现全选和反选
- ListView中的CheckBox全选反选
- ListView + CheckBox (全选,反选,取消)
- Android suspend底层流程解析
- NGUI系列教程四(自定义Atlas,Font)
- NGUI系列教程五(角色信息跟随)
- Java锁机制
- Touch事件和ScrollView的冲突
- Listview下的CheckBox设置全选或者全部选
- zend studio集成thinkphp框架新建项目
- MongoDB入门简介
- 探索JavaScript中Null和Undefined的坑
- uboot.bin board_init_f()的作用以及uboot对内存的分配
- Java 中InputStream与Reader的区别
- VC++深入详解 第十章 绘图控制 用CButtonST类改变按钮控件的背景色及文本颜色 自己实现
- NGUI系列教程六(序列帧动画)
- 悲观锁和乐观锁