• 全选、反选、删除


    xml:

    <?xml version="1.0" encoding="utf-8"?>  
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
        android:layout_width="fill_parent"  
        android:layout_height="fill_parent"  
        android:orientation="horizontal" >  
      
        <TextView  
            android:id="@+id/tv"  
            android:layout_width="fill_parent"  
            android:layout_height="wrap_content"  
            android:layout_gravity="center_vertical" />  
      
        <LinearLayout  
            android:id="@+id/line"  
            android:layout_width="fill_parent"  
            android:layout_height="50dp"  
            android:layout_below="@+id/tv"  
            android:orientation="horizontal" >  
      
            <Button  
                android:id="@+id/bt_selectall"  
                android:layout_width="80dp"  
                android:layout_height="fill_parent"  
                android:text="全选" />  
      
                 <Button  
                android:id="@+id/bt_cancleselectall"  
                android:layout_width="80dp"  
                android:layout_height="fill_parent"  
                android:text="反选" />  
                   
              
            <Button  
                android:id="@+id/bt_deselectall"  
                android:layout_width="80dp"  
                android:layout_height="fill_parent"  
                android:text="删除" />  
      
        </LinearLayout>  
      
        <ListView  
            android:id="@+id/lv"  
            android:layout_width="fill_parent"  
            android:layout_height="fill_parent"  
            android:layout_below="@+id/line" />  
      
    </RelativeLayout>  

    MainActivity.class

    package com.example.zhoukao_one1;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import com.example.zhoukao_one1.MyAdapter.ViewHolder;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.view.Menu;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.AdapterView;
    import android.widget.AdapterView.OnItemClickListener;
    import android.widget.Button;
    import android.widget.ListView;
    import android.widget.TextView;
    
    public class MainActivity extends Activity {
    
         private ListView lv;  
            private MyAdapter mAdapter;  
         //   private ArrayList<String> list;  
            private List<User> list;
            private Button bt_selectall;  
            private Button bt_cancel;  
            private Button bt_deselectall;  
            private String[] name=new String[]{"马克思","*格斯","斯大林","***"};
            private int checkNum; // 记录选中的条目数量  
            private TextView tv_show;// 用于显示选中的条目数量  
          
            /** Called when the activity is first created. */  
          
            @Override  
            public void onCreate(Bundle savedInstanceState) {  
                super.onCreate(savedInstanceState);  
                setContentView(R.layout.activity_main);  
                /* 实例化各个控件 */  
                lv = (ListView) findViewById(R.id.lv);  
                bt_selectall = (Button) findViewById(R.id.bt_selectall);  
                bt_cancel = (Button) findViewById(R.id.bt_cancleselectall);  
                bt_deselectall = (Button) findViewById(R.id.bt_deselectall);  
                tv_show = (TextView) findViewById(R.id.tv);  
              //  list = new ArrayList<String>();  
                list=new ArrayList<User>();
                // 为Adapter准备数据  
                initDate();  
                // 实例化自定义的MyAdapter  
                mAdapter = new MyAdapter(list, this);  
                // 绑定Adapter  
                lv.setAdapter(mAdapter);  
          
                // 全选按钮的回调接口  
                bt_selectall.setOnClickListener(new OnClickListener() {  
                    @Override  
                    public void onClick(View v) {  
                        // 遍历list的长度,将MyAdapter中的map值全部设为true  
                        for (int i = 0; i < list.size(); i++) {  
                            MyAdapter.getIsSelected().put(i, true);  
                        }  
                        // 数量设为list的长度  
                        checkNum = list.size();  
                        // 刷新listview和TextView的显示  
                        dataChanged();  
                    }  
                });  
          
                // 反选按钮的回调接口  
                bt_cancel.setOnClickListener(new OnClickListener() {  
                    @Override  
                    public void onClick(View v) {  
                        // 遍历list的长度,将已选的设为未选,未选的设为已选  
                        for (int i = 0; i < list.size(); i++) {  
                            if (MyAdapter.getIsSelected().get(i)) {  
                                MyAdapter.getIsSelected().put(i, false);  
                                checkNum--;  
                            } else {  
                                MyAdapter.getIsSelected().put(i, true);  
                                checkNum++;  
                            }  
                        }  
                        // 刷新listview和TextView的显示  
                        dataChanged();  
                    }  
                });  
          
                // 取消按钮的回调接口  
                bt_deselectall.setOnClickListener(new OnClickListener() {  
                    @Override  
                    public void onClick(View v) {  
                        // 遍历list的长度,将已选的按钮设为未选  
                        for (int i = 0; i < list.size(); i++) {  
                            if (MyAdapter.getIsSelected().get(i)) {  
                                MyAdapter.getIsSelected().put(i, false);  
                                checkNum--;// 数量减1  
                            }  
                        }  
                        // 刷新listview和TextView的显示  
                        dataChanged();  
                    }  
                });  
          
                // 绑定listView的监听器  
                lv.setOnItemClickListener(new OnItemClickListener() {  
                    @Override  
                    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,  
                            long arg3) {  
                        // 取得ViewHolder对象,这样就省去了通过层层的findViewById去实例化我们需要的cb实例的步骤  
                        ViewHolder holder = (ViewHolder) arg1.getTag();  
                        // 改变CheckBox的状态  
                        holder.cb.toggle();  
                        // 将CheckBox的选中状况记录下*  
                        MyAdapter.getIsSelected().put(arg2, holder.cb.isChecked());  
                        // 调整选定条目  
                        if (holder.cb.isChecked() == true) {  
                            checkNum++;  
                        } else {  
                            checkNum--;  
                        }  
                        // 用TextView显示  
                        tv_show.setText("已选中" + checkNum + "");  
                    }  
                });  
            }  
          
            // 初始化数据  
            private void initDate() {  
                
                for (int i = 0; i < name.length; i++) {  
                    User u=new User();
                    u.setName(name[i]);
                    list.add(u);
                }  
                ;  
            }  
            // 刷新listview和TextView的显示  
            private void dataChanged() {  
                // 通知listView刷新  
                mAdapter.notifyDataSetChanged();  
                // TextView显示最新的选中数目  
                tv_show.setText("已选中" + checkNum + "");  
            };  
        }  
  • 相关阅读:
    fastjson反序列化漏洞研究(上)
    csv注入复现代码
    day24-python之面向对象
    day23-python之日志 re模块
    day22-python之模块
    day21-python模块
    day20-python之装饰器
    day18-python之迭代器和生成器
    day17-python之文件操作
    day16-python之函数式编程匿名函数
  • 原文地址:https://www.cnblogs.com/123p/p/5383152.html
Copyright © 2020-2023  润新知