全选,反选,删除

来源:互联网 发布:世界域名 编辑:程序博客网 时间:2024/04/29 14:42

创建一个类来封装对象

package com.example.bean;public class Item {private String name;private int image;private boolean flag;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getImage() {return image;}public void setImage(int image) {this.image = image;}public boolean isFlag() {return flag;}public void setFlag(boolean flag) {this.flag = flag;}public Item(String name, int image, boolean flag) {super();this.name = name;this.image = image;this.flag = flag;}public Item() {super();}@Overridepublic String toString() {return "Item [name=" + name + ", image=" + image + ", flag=" + flag+ "]";}}

MainActivity

package com.example.oneweek;import java.util.ArrayList;import java.util.Iterator;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ListView;import android.widget.Toast;import com.example.bean.Item;public class MainActivity extends Activity implements OnClickListener {private ListView lv;private ArrayList<Item> listdata;private Mylvadapter adapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button bt_all = (Button) this.findViewById(R.id.all);Button bt_fanxuan = (Button) this.findViewById(R.id.fanxuan);Button bt_delete = (Button) this.findViewById(R.id.delete);bt_all.setOnClickListener(this);bt_delete.setOnClickListener(this);bt_fanxuan.setOnClickListener(this);lv = (ListView) this.findViewById(R.id.lv);// 定义数据inidata();initadapter();}private void inidata() {listdata = new ArrayList<Item>();listdata.add(new Item("马克思", R.drawable.a, false));listdata.add(new Item("恩格斯", R.drawable.a, false));listdata.add(new Item("斯大林", R.drawable.a, false));listdata.add(new Item("毛泽东", R.drawable.a, false));listdata.add(new Item("邓小平", R.drawable.a, false));listdata.add(new Item("江泽民", R.drawable.a, false));listdata.add(new Item("江泽民", R.drawable.a, false));listdata.add(new Item("江泽民", R.drawable.a, false));listdata.add(new Item("江泽民", R.drawable.a, false));listdata.add(new Item("江泽民", R.drawable.a, false));listdata.add(new Item("江泽民", R.drawable.a, false));listdata.add(new Item("江泽民", R.drawable.a, false));listdata.add(new Item("江泽民", R.drawable.a, false));listdata.add(new Item("江泽民", R.drawable.a, false));}private void initadapter() {adapter = new Mylvadapter(MainActivity.this, listdata);lv.setAdapter(adapter);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.all:// 全选listdata = adapter.listdata;for (int i = 0; i < listdata.size(); i++) {if (!listdata.get(i).isFlag()) {listdata.get(i).setFlag(true);adapter.notifyDataSetChanged();}}break;case R.id.fanxuan:// 反选listdata = adapter.listdata;for (int i = 0; i < listdata.size(); i++) {if (listdata.get(i).isFlag()) {listdata.get(i).setFlag(false);adapter.notifyDataSetChanged();}else{listdata.get(i).setFlag(true);adapter.notifyDataSetChanged();}}break;case R.id.delete:Toast.makeText(MainActivity.this, "图示", 0).show();// 点击删除listdata = adapter.listdata;Iterator<Item> iterator = listdata.iterator();while (iterator.hasNext()) {Item item = iterator.next();if (item.isFlag()) {iterator.remove();adapter.notifyDataSetChanged();}}break;default:break;}}// 点击事件}

适配器加载数据

package com.example.oneweek;import java.util.ArrayList;import android.content.Context;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.CheckBox;import android.widget.CompoundButton;import android.widget.CompoundButton.OnCheckedChangeListener;import android.widget.ImageView;import android.widget.TextView;import com.example.bean.Item;public class Mylvadapter extends BaseAdapter {Context context;ArrayList<Item> listdata;public Mylvadapter(Context context, ArrayList<Item> listdata) {super();this.context = context;this.listdata = listdata;}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn listdata.size();}@Overridepublic Object getItem(int arg0) {// TODO Auto-generated method stubreturn null;}@Overridepublic long getItemId(int arg0) {// TODO Auto-generated method stubreturn 0;}@Overridepublic View getView(final int arg0, View arg1, ViewGroup arg2) {ViewHolder vh = null;if (arg1 == null) {vh = new ViewHolder();arg1 = View.inflate(context, R.layout.activity_item, null);vh.imageview = (ImageView) arg1.findViewById(R.id.image);vh.text = (TextView) arg1.findViewById(R.id.text);vh.cb = (CheckBox) arg1.findViewById(R.id.cb);arg1.setTag(vh);} else {vh = (ViewHolder) arg1.getTag();}vh.imageview.setImageResource(listdata.get(arg0).getImage());vh.text.setText(listdata.get(arg0).getName());vh.cb.setOnCheckedChangeListener(new OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {if (isChecked) {listdata.get(arg0).setFlag(true);} else {listdata.get(arg0).setFlag(false);}}});vh.cb.setFocusable(false);vh.cb.setChecked(listdata.get(arg0).isFlag());return arg1;}public ArrayList<Item> listdata() {return listdata;}class ViewHolder {ImageView imageview;TextView text;CheckBox cb;}}



0 0