CheckedTextView使用Demo
来源:互联网 发布:大米评测淘宝店 编辑:程序博客网 时间:2024/06/14 01:59
由于CheckedTextView使用很少,所以用的不多,之前自己用TextView和CheckBox结合使用过,实现类似的功能。但是不如使用CheckedTextView这么优雅,所以这次做项目的时候就使用这个了,虽然不是新的什么点,但是作为一个总结吧,记录下来!!
直接用代码来看问题:
步骤一:
做主界面的布局,直接使用了一个的ListView,
<?xml version="1.0" encoding="utf-8"?><ListView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center_horizontal" android:divider="?attr/layoutparentbg" android:dividerHeight="1dp" android:listSelector="@android:color/transparent" android:orientation="vertical" android:overScrollMode="never" android:scrollbars="none" />
步骤二:
自定义该ListView 的样式布局文件:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content"> <ImageView android:id="@+id/img_icon" android:layout_width="wrap_content" android:layout_height="@dimen/intro_common_height" android:layout_alignParentLeft="true" android:layout_marginLeft="@dimen/intro_margin_20" android:layout_centerVertical="true" android:contentDescription="@string/app_name" android:scaleType="fitCenter" android:src="@drawable/icon_res_friend" /> <CheckedTextView android:id="@+id/checktv_title" android:layout_width="match_parent" android:layout_height="?android:attr/listPreferredItemHeight" android:textAppearance="?android:attr/textAppearanceLarge" android:gravity="center_vertical" android:checkMark="?android:attr/listChoiceIndicatorMultiple" android:paddingLeft="6dip" android:filterTouchesWhenObscured="true" android:focusableInTouchMode="true" android:text="公司" android:layout_toRightOf="@+id/img_icon" android:layout_marginLeft="@dimen/intro_margin_15" android:textSize="12sp" android:paddingRight="6dip" /></RelativeLayout>
步骤三:代码实现部分:
适配器:
class CompanyListAdapter extends BaseAdapter { private ArrayList<InsuranceCompany> riskArrayList; public ArrayList<InsuranceCompany> getRiskArrayList() { return riskArrayList; } public CompanyListAdapter(ArrayList<InsuranceCompany> regionArrayList) { this.riskArrayList = regionArrayList; checkedMap = new HashMap<>(); } public void updateRefresh(ArrayList<InsuranceCompany> refreshRegions) { if (riskArrayList == null) { riskArrayList = new ArrayList<>(); } this.riskArrayList.clear(); this.riskArrayList.addAll(refreshRegions); this.notifyDataSetChanged(); } @Override public int getCount() { if (riskArrayList == null) return 0; return riskArrayList.size(); } @Override public Object getItem(int position) { return riskArrayList.get(position); } @Override public long getItemId(int position) { return position; } class Holder { ImageView img_icon; CheckedTextView text_AreaName; } @Override public View getView(final int position, View convertView, ViewGroup parent) { Holder holder; if (convertView == null) { // android.R.layout.simple_list_item_checked convertView = LayoutInflater.from(mContext).inflate(R.layout.item_list_insurancecompany, null); holder = new Holder(); holder.text_AreaName = (CheckedTextView)convertView.findViewById(R.id.checktv_title); holder.img_icon = (ImageView)convertView.findViewById(R.id.img_icon); convertView.setTag(holder); } else { holder = (Holder)convertView.getTag(); } InsuranceCompany region = riskArrayList.get(position); holder.text_AreaName.setText(region.name); if (checkedMap.get(position) != null && checkedMap.get(position) == true) { holder.text_AreaName.setChecked(true); } else { holder.text_AreaName.setChecked(false); } holder.text_AreaName.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub CheckedTextView checkedTextView = (CheckedTextView)v; checkedTextView.toggle(); checkedMap.put(position, checkedTextView.isChecked()); } }); Glide.with(mContext).load("http://p4.so.qhimg.com/t01eead9be5f0a448de.jpg").into(holder.img_icon); // Glide.with(mContext).load(region.icon).into(holder.img_icon); return convertView; } }
关键部分:必须在适配器里给CheckedTextView 设置监听器,设置选中和未选中的状态
holder.text_AreaName.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub CheckedTextView checkedTextView = (CheckedTextView)v; checkedTextView.toggle(); checkedMap.put(position, checkedTextView.isChecked()); } });
这样,CheckedTextView 选中和未选中,就能进行改变和存储了!
效果图:
写的不好,希望尽情指正不足!提前感谢
1 0
- CheckedTextView使用Demo
- CheckedTextView 使用
- CheckedTextView的使用
- CheckedTextView
- checkedTextView
- android listview checkedTextView 的使用
- Android中ListView中使用CheckedTextView
- ListView中使用CheckedTextView实现多选
- android使用CheckedTextView搭配listview完成选择列表
- CheckedTextView控件
- CheckedTextView的显示问题
- CheckedTextView 的用法
- android中的CheckedTextView
- ListView中的CheckedTextView 多选
- CheckedTextView的使用、学android疯狂讲义第二版遇到的问题希望能帮到和我一样的初学者、新手
- ListView中的CheckedTextView 多选/单
- Radiobutton CheckedTextView Checkbox 焦点问题
- LIstView中CheckedTextView的应用
- CodeForces 628B New Skateboard
- 深入理解JNI
- 【web前端】CSS基础
- 图着色问题
- register关键字的作用
- CheckedTextView使用Demo
- 英语总结
- iOS开发之 cell上label出现文字重叠的情况
- iOS多线程中performSelector: 和dispatch_time的不同
- 测试
- 求解——spring+Hibernate中Dao内的方法执行到Session session=getSession();后停止运行
- objective-c 第四天 字典
- static关键字的作用
- 克隆和分支管理