切换选择listview的某个item
2016-03-08 10:44
393 查看
package com.local; import android.content.Context; import java.util.List; /** * Created by my on 2016/3/7. */ public class LocalCityAdapter extends BaseAdapter<City>{ private String mType; LocalCityAdapter(Context context, int textViewResourceId, String aType, List<City> aOpenedCities) { super(context, textViewResourceId); this.mDatas = aOpenedCities; this.mType = aType; } @Override protected Object setUpView(View aView) { ViewHolder aViewHolder = new ViewHolder(); aViewHolder.local_change_city_img = (ImageView) aView.findViewById(R.id.local_change_city_img); aViewHolder.local_checkmark = (ImageView) aView.findViewById(R.id.local_checkmark); return aViewHolder; } @Override protected void setViewData(Object obj1, Object obj2) { // } private int aIndex=0; protected void setViewData(Object obj1, Object obj2, final int index) { final ViewHolder aViewHolder = (ViewHolder) obj1; City currentCity = (City)obj2;//当前选中item的数据 if (!TextUtils.isEmpty(currentCity.getImage())) { mImageLoader.displayImage(currentCity.getImage(), aViewHolder.local_change_city_img); } aViewHolder.local_change_city_img.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { aViewHolder.local_checkmark.setVisibility(View.VISIBLE); if (index != aIndex) {//记录选中下标 aIndex = index; } LocalCityAdapter.this.notifyDataSetChanged();//刷新adapter就能看见切换了item } }); if (!TextUtils.isEmpty(currentCity.getName())) { aViewHolder.local_change_name.setText(currentCity.getName()); } } @Override public void notifyDataSetChanged() { super.notifyDataSetChanged(); } @Override protected View getView(final int position, View convertView) { ViewHolder aViewHolder; if (convertView == null) { convertView = this.mLayoutInflater.inflate(R.layout.local_change_item_layout, null); aViewHolder = (ViewHolder) this.setUpView(convertView); convertView.setTag(aViewHolder); } else { aViewHolder = (ViewHolder) convertView.getTag(); } try { if (position == aIndex) {//当前选择项显示选中标识 aViewHolder.local_checkmark.setVisibility(View.VISIBLE); }this.setViewData(aViewHolder, this.mDatas.get(position), position); } catch (Exception e) { e.printStackTrace(); } return convertView; } static class ViewHolder { private ImageView local_change_city_img;//城市大图 private ImageView local_checkmark;//城市选中标识 }}
相关文章推荐
- iOS安全–不同平台的崩溃收集
- 128.You need to generate a report that shows all country names, with corresponding customers (if any
- 防止Spinner初始化加载
- 获取一定时间段内星期几的日期
- C++ (P160—)多继承 二义性 虚基类 “向上转型”
- iOS边练边学--UIScrollView的属性简单使用,代理的简单介绍以及内容缩放
- mysql解压版安装
- 使用runtime给属性批量初始化赋值
- Android开发周报:谷歌I/O网站上线、Android架构解析
- Android M 新的运行时权限开发者需要知道的一切
- 怎么用copy关键字
- 设计模式:单例模式
- Python Singleton
- 各类算法技巧核心代码,知识点归纳总结之单调递增子序列
- MultipartFile 转 File
- Actionbarsherlock与Viewpagerindicator详解
- eclipse插件开发调试报错,出现内存溢出的情况
- Vim 配置和使用
- 重温设计模式一:类关系
- ubuntu 下androidsdk 更新