布局
<?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" > <ListView android:id="@+id/lv" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"></ListView> <RadioGroup android:id="@+id/rg" android:layout_width="match_parent" android:layout_height="50dp" android:orientation="horizontal" android:gravity="center_vertical"> <RadioButton android:id="@+id/rb_quanxuan" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:text="全选"/> <RadioButton android:id="@+id/rb_fanxuan" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:text="反选"/> <RadioButton android:id="@+id/rb_quanbuxuan" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:text="全不选"/> </RadioGroup> </LinearLayout>
条目布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="100dp" android:orientation="horizontal" android:gravity="center_vertical"> <CheckBox android:id="@+id/cb_item" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp"/> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:layout_marginLeft="20dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="条目" android:textSize="15sp"/> <ImageView android:layout_width="100dp" android:layout_height="85dp" android:src="@mipmap/ic_launcher"/> </LinearLayout> </LinearLayout> </LinearLayout>
bean
package com.baway.rikao; /** * @author 任珏 * @类的用途 * @date 2017/4/12 8:51 */ public class ItemBean { public boolean ischeck; @Override public String toString() { return "ItemBean{" + "ischeck=" + ischeck + '}'; } }
代码
package com.baway.rikao; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.CheckBox; import android.widget.ListView; import android.widget.RadioGroup; import android.widget.Switch; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { private ListView lv; private RadioGroup rg; private List<ItemBean> list; private MyAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); list = new ArrayList<>(); for (int i = 0; i < 5; i++) { ItemBean itemBean = new ItemBean(); itemBean.ischeck=false; list.add(itemBean); } adapter = new MyAdapter(); lv.setAdapter(adapter); rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { switch (checkedId){ case R.id.rb_quanxuan: for (int i = 0; i < list.size(); i++) { list.get(i).ischeck=true; } adapter.notifyDataSetChanged(); break; case R.id.rb_fanxuan: for (int i = 0; i < list.size(); i++) { if (list.get(i).ischeck){ list.get(i).ischeck=false; }else{ list.get(i).ischeck=true; } } adapter.notifyDataSetChanged(); break; case R.id.rb_quanbuxuan: for (int i = 0; i < list.size(); i++) { list.get(i).ischeck=false; } adapter.notifyDataSetChanged(); break; } } }); } private void initView() { lv = (ListView) findViewById(R.id.lv); rg = (RadioGroup) findViewById(R.id.rg); } class MyAdapter extends BaseAdapter{ @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(final int position, View convertView, ViewGroup parent) { convertView=View.inflate(MainActivity.this,R.layout.lv_item,null); final CheckBox cb_item = (CheckBox) convertView.findViewById(R.id.cb_item); cb_item.setChecked(list.get(position).ischeck); cb_item.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (cb_item.isChecked()){ list.get(position).ischeck=true; }else{ list.get(position).ischeck=false; } notifyDataSetChanged(); } }); return convertView; } } }