用CheckBox批量删除ListView中的某些选项(代码尚未验证,仅供参考Ing。。。)

    技术2026-09-20  8

    这个需要自己去继承adapter,然后利用一些简单的JAVA代码做到批量删除的效果。以下是各个分段程序的代码,你可以看看,希望对你有帮助/********************************************************************src包中的程序**************************MyListData.java【主要用来充当一个数据源而已】代码:/***********************************************************************************************************/package com.hzj.MList;import java.util.ArrayList;import java.util.HashMap;import java.util.List;public class MyListData{public static   List<HashMap<String, Object>> array=new ArrayList<HashMap<String,Object>>();}/***********************************************************************************************************/MList.java【主界面,一个ListView和一个Button】代码:/***********************************************************************************************************/package com.hzj.MList;import java.util.HashMap;import java.util.Iterator;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.ViewGroup;import android.view.View.OnClickListener;import android.widget.BaseAdapter;import android.widget.Button;import android.widget.CheckBox;import android.widget.CompoundButton;import android.widget.ListView;import android.widget.TextView;import android.widget.CompoundButton.OnCheckedChangeListener;public class MList extends Activity {ListView listView=null;Button button=null;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        //初始化数据        MyListData.array.clear();        HashMap<String, Object> ha1=new HashMap<String, Object>();        ha1.put("Big", "文章0");        ha1.put("Small", "android 小项目0");        ha1.put("isCheck", "0");        MyListData.array.add(ha1);                HashMap<String, Object> ha2=new HashMap<String, Object>();                ha2.put("Big", "文章1");        ha2.put("Small", "android 小项目1");        ha2.put("isCheck", "0");        MyListData.array.add(ha2);        HashMap<String, Object> ha3=new HashMap<String, Object>();        ha3.put("Big", "文章2");        ha3.put("Small", "android 小项目2");        ha3.put("isCheck", "0");        MyListData.array.add(ha3);        HashMap<String, Object> ha4=new HashMap<String, Object>();        ha4.put("Big", "文章3");        ha4.put("Small", "android 小项目3");        ha4.put("isCheck", "0");        MyListData.array.add(ha4);        //初始化ListView        listView=(ListView)findViewById(R.id.ListView01);               //设置adapter【这里需要自定义adapter】        MySimpleAdapter adapter=new MySimpleAdapter(this);        listView.setAdapter(adapter);         button=(Button)findViewById(R.id.Button01);        //activity界面上的按钮事件,用于批量删除        button.setOnClickListener(new OnClickListener()  {    @Override   public void onClick(View v)   {     //执行批量删除     Iterator<HashMap<String, Object>> iterator = MyListData.array.iterator();     while(iterator.hasNext())     {      HashMap<String, Object> temp=iterator.next();            if(temp.get("isCheck").toString().equals("1"))      {       iterator.remove();      }     }    //刷新listView     MySimpleAdapter adapter=new MySimpleAdapter(MList.this);          listView.setAdapter(adapter);        }  });    }}class MySimpleAdapter extends BaseAdapter{Activity activity;public MySimpleAdapter(Activity activity){  this.activity=activity; } //返回总行数,实际上这里的适配器绑定一个数据源,数据源为List@Overridepublic int getCount(){  // TODO Auto-generated method stub  return MyListData.array.size();}//返回指定的Item,当然选择的position也对应于List里面的index,且都从0开始@Overridepublic Object getItem(int position){  // TODO Auto-generated method stub  return MyListData.array.get(position);}//返回指定的ItemID@Overridepublic long getItemId(int position){  // TODO Auto-generated method stub  return position;}//主要是这里需要自己定义要显示什么!@Overridepublic View getView(int position, View convertView, ViewGroup parent){  //得到自己定义的List的界面style  View view=activity.getLayoutInflater().inflate(R.layout.liststyle,null);  //得到文本框1对象  TextView textView1=(TextView)view.findViewById(R.id.TextView01);  //得到文本框2对象  TextView textView2=(TextView)view.findViewById(R.id.TextView02);  //得到check对象  CheckBox checkBox=(CheckBox)view.findViewById(R.id.CheckBox01);  //设置tag,为了下面的事件服务  checkBox.setTag(position);    //设置文本框1对象的值  textView1.setText(MyListData.array.get(position).get("Big").toString()) ;  //设置文本框2对象的值  textView2.setText(MyListData.array.get(position).get("Small").toString());  //设置check对象的点击事件  checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener()  {      @Override   public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)   {    //得到tag主要传递position    int p= Integer.parseInt(buttonView.getTag().toString());    //一个简单的测试,看看有没有效果    System.out.println("*************************"+p);        if(isChecked)    {            MyListData.array.get(p).put("isCheck", "1");    }    else    {     MyListData.array.get(p).put("isCheck", "0");    }    //一个简单的测试,看看有没有效果    System.out.println(MyListData.array.get(p).get("isCheck").toString());   }  });    return view;} }/***********************************************************************************************************/layout包中的布局主界面布局对应于【MList.java】main.xml代码:/***********************************************************************************************************/<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    ><TextView      android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:text="@string/hello"    /><ListView android:id="@+id/ListView01" android:layout_width="wrap_content" android:layout_height="wrap_content"></ListView><Button android:text="@+id/Button01" android:id="@+id/Button01" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button></LinearLayout>/***********************************************************************************************************/Listview的Item布局。liststyle.xml代码:/***********************************************************************************************************/<?xml version="1.0" encoding="utf-8"?><LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"  android:orientation="vertical"  android:layout_width="fill_parent"  android:layout_height="wrap_content">  <LinearLayoutandroid:id="@+id/LinearLayout02"   android:orientation="horizontal"android:layout_width="fill_parent" android:layout_height="wrap_content"><TextView android:text="@+id/TextView01" android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView></LinearLayout>    <LinearLayout android:id="@+id/LinearLayout01"   android:orientation="horizontal"android:layout_width="fill_parent" android:layout_height="wrap_content"><TextView android:text="@+id/TextView02" android:id="@+id/TextView02" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView><CheckBox android:text="@+id/CheckBox01" android:id="@+id/CheckBox01" android:layout_width="wrap_content" android:layout_height="wrap_content"></CheckBox></LinearLayout></LinearLayout>

    最新回复(0)