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
- Android 全选 全不选 反选 获得选中的下标
- Android 中listview的全选、全不选、反选、获得选中条目数据
- jquery实现全选、反选、获得所有选中的checkbox
- checkbox全选/取消/选中所有奇数/反选/获得选中的值
- jquery checkbox的相关操作——全选、反选、获得所有选中的checkbox
- jquery .prop()的相关操作——全选、反选、获得所有选中的checkbox
- jquery实现全选、反选、获得所有选中的checkbox (记录专用
- 全选,反全选,反选,获取选中的值,根据子选择控制全选按钮
- jQuery:1.5.1,复选框应用(全选,全不选,反选,提交选中的值,全选/全不选)
- 通过下标全选反选,删除
- jqeury checkbox全选/反选 ,子选项全选,全选选中
- Android中ListView中有Checkbox时,想获得item的position,以及全选,反选
- checkbox 全选、全不选、反选、提交获取选中值
- Android全选反选
- jquery 列表全选,反选,选中验证
- 复选框的一下额操作|全选 取消全选 反选 选中值
- 全选,反选,全不选
- 全选,反选,全不选
- 发布一个月,iOS 11 安装普及率达到 55%
- PS CS6 forMac 中文破解版下载及破解方法
- 从零开始学习TFLearn(二)
- leetcode 75. Sort Colors
- DXP AD 绘制一个扁长型的过孔
- Android 全选 全不选 反选 获得选中的下标
- linux早期经典字符设备驱动模型
- EL表达式中等于、不等于、小于、大于
- [二分图匹配] HHHOJ#51. Book
- MyEclipse2017版本去除自带tomcat的方法
- 用友、金山……3份行业深度洞察报告,100+主流厂商,300+业内大咖,企服三会与你洞见2018 | 【企服三会·2018】
- ——致远互联渠道伙伴系列访谈之四川凤凰世纪
- 第四天 Javascript基础教程
- 科大讯飞董事长刘庆峰:人工智能窗口期有多远?【软件网每日新闻播报│第10-19期】