listview+checkbox实现单选
来源:互联网 发布:学生空间七天网络答案 编辑:程序博客网 时间:2024/05/30 07:14
1、listview的设置:
<ListView android:id="@+id/lvi_sel_approvalperson" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:cacheColorHint="#00000000" android:clickable="true" android:descendantFocusability="blocksDescendants" android:divider="#e0e0e0" android:dividerHeight="0.5dp" android:fadingEdge="none" android:fastScrollEnabled="true" android:scrollbars="none" android:scrollingCache="false" />
2、子view的CheckBox设置
<CheckBox android:id="@+id/che_type" style="@style/sel_approval" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_centerVertical="true" android:clickable="false" android:focusable="false" android:focusableInTouchMode="false" />3、代码中实现
private List<QueryPersonCardListData> mList = new ArrayList<QueryPersonCardListData>();private SelApprovalPersonAdapter mAdapter;private Map<Integer, Boolean> isSelected;private List beSelectedData = new ArrayList();for (QueryPersonCardListData arr : bean.getData()) { mList.add(arr);}initList();private void initList() { if (mList == null || mList.size() == 0) return; if (isSelected != null) isSelected = null; isSelected = new HashMap<Integer, Boolean>(); for (int i = 0; i < mList.size(); i++) { isSelected.put(i, false); } // 清除已经选择的项 if (beSelectedData.size() > 0) { beSelectedData.clear(); } mAdapter = new SelApprovalPersonAdapter(this, mList); mLviAelApprovalperson.setAdapter(mAdapter); mLviAelApprovalperson.setChoiceMode(ListView.CHOICE_MODE_SINGLE); mAdapter.notifyDataSetChanged();}public class SelApprovalPersonAdapter extends BaseAdapter { Context cxt; private List<QueryPersonCardListData> mList; private LayoutInflater mInflater; //private View.OnClickListener mOnItemClick; public SelApprovalPersonAdapter(Context context, List<QueryPersonCardListData> list) { cxt = context; mInflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); mList = list; if (list == null) { mList = new ArrayList<QueryPersonCardListData>(); } // listview条目点击// mOnItemClick = new View.OnClickListener() {//// @Override// public void onClick(View v) {// ViewHolder item = (ViewHolder) v.getTag();// }// }; } @Override public int getCount() { return mList.size(); } @Override public Object getItem(int arg0) { return mList.get(arg0); } public void clear() { mList.clear(); } public void setList(List<QueryPersonCardListData> list) { this.mList = list; } public void addAll(List<QueryPersonCardListData> list) { mList.addAll(list); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position1, View convertView, ViewGroup parent) { final int position = position1; ViewHolder holder = null; if (convertView == null) { convertView = mInflater.inflate(R.layout.view_sel_approval_person, null); holder = new ViewHolder(); holder.che_type = (CheckBox) convertView .findViewById(R.id.che_type); holder.img_photo = (ImageView) convertView .findViewById(R.id.img_photo); holder.tv_phone = (TextView) convertView .findViewById(R.id.tv_phone); holder.tv_name = (TextView) convertView .findViewById(R.id.tv_name); holder.tv_part = (TextView) convertView .findViewById(R.id.tv_part); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } //convertView.setOnClickListener(mOnItemClick); QueryPersonCardListData arr = (QueryPersonCardListData) getItem(position); holder.arr = arr; loader.displayImage(ApiUtil.url() + arr.getPhoto_path(), holder.img_photo, options); holder.tv_phone.setText(arr.getMobile()); holder.tv_name.setText(arr.getName()); holder.tv_part.setText(arr.getDept_name()); holder.che_type.setChecked(isSelected.get(position)); holder.che_type.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // 当前点击的CB boolean cu = !isSelected.get(position); // 先将所有的置为FALSE for (Integer p : isSelected.keySet()) { isSelected.put(p, false); } // 再将当前选择CB的实际状态 isSelected.put(position, cu); SelApprovalPersonAdapter.this.notifyDataSetChanged(); beSelectedData.clear(); if (cu) { beSelectedData.add(mList.get(position)); mSelPersonId = mList.get(position).getPerson_id(); mSelPersonName = mList.get(position).getName(); } } }); return convertView; } } class ViewHolder { CheckBox che_type; ImageView img_photo; TextView tv_name; TextView tv_phone; TextView tv_part; QueryPersonCardListData arr; }
0 0
- listview+checkbox实现单选
- ListView 加checkBox实现 单选功能
- ListView与CheckBox组合实现单选
- 用CheckBox实现ListView单选效果
- Android学习-ListView+ CheckBox实现单选
- CheckBox在listview中实现单选
- Android ListView带CheckBox实现单选
- android ListView+CheckBox实现单选
- ListView+CheckBox实现单选效果
- ListView+CheckBox实现单选列表
- ListView中的CheckBox实现单选
- Android ListView 使用checkbox 实现 单选、多选操作
- ListView + CheckBox实现单选、多选效果
- ListView实现CheckBox的单选与多选
- android Listview checkbox 单选
- ListView CheckBox 全选,单选
- Android ListView单选CheckBox
- android ListView中Checkbox实现单选,全选,全不选功能
- C++开发预定义宏——以VS2010为例
- 浙大PAT甲级 1040
- 占位
- leetcode-java-279. Perfect Squares
- Spring 与 Struts2的区别
- listview+checkbox实现单选
- vijos1144&&bzoj1596(树形dp,树上最小控制集
- LEI (Lotus Enterprise Integrator for Domino) 7.0.4 升级到 8.5.3 问题记录
- 匿名者为#OpOlympicHacking网络攻击开发出专用DDoS工具
- 占位
- 占位
- 占位
- 占位
- 占位