您的位置:首页 > 其它

切换选择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;//城市选中标识 }}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: