Android 全选 全不选 反选 获得选中的下标

来源:互联网 发布:浅析网络直播 编辑:程序博客网 时间:2024/06/05 22:46

效果展示:

这里写图片描述

MainActivity(主页面代码)

public class MainActivity extends ActionBarActivity {    private Button button;    private ListView listView;    private List<DataBean> mDatas;    private MyAdapter mAdapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        button = (Button) findViewById(R.id.edit1);        listView = (ListView) findViewById(R.id.listview);        mDatas = new ArrayList<>();        for (int i = 0; i < 20; i++) {            DataBean dataBean = new DataBean("" + i, "上邪", "山无棱,天地合,乃敢与君绝");            mDatas.add(dataBean);        }        mAdapter = new MyAdapter(this, mDatas);        listView.setAdapter(mAdapter);    }    /**     * 编辑、取消编辑     * @param view     */    public void btnEditList(View view) {//        mAdapter.flage = !mAdapter.flage;////        if (mAdapter.flage) {//            button.setText("取消");//        } else {//            button.setText("编辑");//        }////        mAdapter.notifyDataSetChanged();    }    /**     * 全选     * @param view     */    public void btnSelectAllList(View view) {//        if (mAdapter.flage) {        for (int i = 0; i < mDatas.size(); i++) {            mDatas.get(i).isCheck = true;        }        mAdapter.notifyDataSetChanged();//        }    }    /**     * 全不选     * @param view     */    public void btnNoList(View view) {//        if (mAdapter.flage) {        for (int i = 0; i < mDatas.size(); i++) {            mDatas.get(i).isCheck = false;        }        mAdapter.notifyDataSetChanged();//        }    }    /**     * 反选     * @param view     */    public void btnfanxuanList(View view) {//        if (mAdapter.flage) {        for (int i = 0; i < mDatas.size(); i++) {            if (mDatas.get(i).isCheck) {                mDatas.get(i).isCheck = false;            } else {                mDatas.get(i).isCheck = true;            }        }        mAdapter.notifyDataSetChanged();//        }    }    /**     * 获取选中数据     * @param view     */    public void btnOperateList(View view) {        List<String> ids = new ArrayList<>();//        if (mAdapter.flage) {        for (int i = 0; i < mDatas.size(); i++) {            if (mDatas.get(i).isCheck) {                ids.add(mDatas.get(i).id);            }        }        Toast.makeText(MainActivity.this,ids.toString(), Toast.LENGTH_SHORT).show();        Log.e("TAG", ids.toString());//        }    }}

MyAdapter(外置适配器)

public class MyAdapter extends BaseAdapter {    private Context mContext;    private List<DataBean> mDatas;    private LayoutInflater mInflater;//  public boolean flage = false;    public MyAdapter(Context mContext, List<DataBean> mDatas) {        this.mContext = mContext;        this.mDatas = mDatas;        mInflater = LayoutInflater.from(this.mContext);    }    @Override    public int getCount() {        // TODO Auto-generated method stub        return mDatas.size();    }    @Override    public Object getItem(int arg0) {        // TODO Auto-generated method stub        return mDatas.get(arg0);    }    @Override    public long getItemId(int arg0) {        // TODO Auto-generated method stub        return arg0;    }    @Override    public View getView(int position, View convertView, ViewGroup viewGroup) {        ViewHolder holder = null;        if (convertView == null) {            holder = new ViewHolder();            // 条目布局            convertView = mInflater.inflate(R.layout.item, null);            holder.checkboxOperateData = (CheckBox) convertView                    .findViewById(R.id.checkbox_operate_data);            holder.textTitle = (TextView) convertView                    .findViewById(R.id.text_title);            holder.textDesc = (TextView) convertView                    .findViewById(R.id.text_desc);            convertView.setTag(holder);        } else {            holder = (ViewHolder) convertView.getTag();        }        final DataBean dataBean = mDatas.get(position);        if (dataBean != null) {            holder.textTitle.setText(dataBean.title);            holder.textDesc.setText(dataBean.desc);            // 根据isSelected来设置checkbox的显示状况//          if (flage) {//                holder.checkboxOperateData.setVisibility(View.VISIBLE);//            } else {//                holder.checkboxOperateData.setVisibility(View.GONE);//            }//            holder.checkboxOperateData.setChecked(dataBean.isCheck);            //注意这里设置的不是onCheckedChangListener,还是值得思考一下的            holder.checkboxOperateData.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View v) {                    if (dataBean.isCheck) {                        dataBean.isCheck = false;                    } else {                        dataBean.isCheck = true;                    }                }            });        }        return convertView;    }    class ViewHolder {        public CheckBox checkboxOperateData;        public TextView textTitle;        public TextView textDesc;    }}

DataBean(工具类/封装类)

public class DataBean {    public String id;    public String title;    public String desc;    public boolean isCheck;  //该属性主要标志CheckBox是否选中    public DataBean(String id, String title, String desc) {        this.id = id;        this.title = title;        this.desc = desc;    }}

activity_main(主Activity中的布局)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical">    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:orientation="horizontal">        <Button            android:id="@+id/edit1"            android:onClick="btnEditList"            android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_weight="1"            android:text="编辑"/>        <Button            android:id="@+id/edit2"            android:onClick="btnSelectAllList"            android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_weight="1"            android:text="全选"/>        <Button            android:id="@+id/edit3"            android:onClick="btnNoList"            android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_weight="1"            android:text="全不选"/>        <Button            android:id="@+id/edit4"            android:onClick="btnfanxuanList"            android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_weight="1"            android:text="反选"/>        <Button            android:id="@+id/edit5"            android:onClick="btnOperateList"            android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_weight="1"            android:text="获得选中的数据"/>    </LinearLayout>    <ListView        android:id="@+id/listview"        android:layout_width="match_parent"        android:layout_height="match_parent"        ></ListView></LinearLayout>

item(主页面的list条目布局)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical">    <LinearLayout        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_gravity="center_vertical"        android:gravity="center_vertical"        android:orientation="horizontal">        <CheckBox            android:id="@+id/checkbox_operate_data"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_gravity="center_vertical"            android:layout_margin="6dp"            />        <ImageView            android:id="@+id/material_item_img"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_gravity="center_vertical"            android:adjustViewBounds="true"            android:scaleType="centerCrop"            android:src="@mipmap/ic_launcher" />    </LinearLayout>    <LinearLayout        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:layout_gravity="center_vertical"        android:orientation="horizontal"        android:paddingBottom="10dp"        android:paddingTop="10dp">        <View            android:id="@+id/user_head_img"            android:layout_width="5dp"            android:layout_height="fill_parent"            android:background="#4483c9" />        <LinearLayout            android:layout_width="fill_parent"            android:layout_height="wrap_content"            android:orientation="vertical">            <TextView                android:id="@+id/text_title"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:gravity="center_vertical"                android:singleLine="true"                android:text="标题"                android:textColor="#555555"                android:textSize="16sp" />            <LinearLayout                android:layout_width="fill_parent"                android:layout_height="wrap_content"                android:layout_marginTop="10dp"                android:gravity="center_vertical"                android:orientation="horizontal">                <TextView                    android:id="@+id/text_desc"                    android:layout_width="wrap_content"                    android:layout_height="wrap_content"                    android:layout_gravity="center_vertical"                    android:gravity="bottom"                    android:singleLine="true"                    android:text="描述描述描述描述描述描述"                    android:textColor="#aaaaaa"                    android:textSize="14sp" />            </LinearLayout>        </LinearLayout>    </LinearLayout></LinearLayout>

最后提醒:网络数据接口您自己供应

谢谢观看,小编祝大家生活愉快!(多多关注小编,会有非常之多精彩分享哦!)

阅读全文
0 0
原创粉丝点击