android listview 单选功能
来源:互联网 发布:无锡激光编程招聘信息 编辑:程序博客网 时间:2024/05/22 13:05
单选功能 提供Adapter的 处理代码
实现的思路是 用一个 map 保存下刚才选择的position item, 在adapter里面 设置 选中状态的时候 从 map里面获取。再次点击选择其他position的item的时候,将map中上一次 保存的 position的item删掉,最后一次点击的position 在每次点击的时候用一个单独的变量保存。 在点击事件里面重新notify当前 adapter 。
import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.CheckBox;import android.widget.CompoundButton;import android.widget.TextView;import com.ccvideo.R;import com.yizhibo.video.bean.pay.OptionListEntity;public class ExchangeCoinsAdapter extends BaseAdapter { private Context context; private List<OptionListEntity> mList; private Map<Integer, Boolean> isCheckMap = new HashMap<Integer, Boolean>(); private int lastPosition; private int checkedRmb; public ExchangeCoinsAdapter(Context context) { this.context = context; mList = new ArrayList<OptionListEntity>(); } public void setData(List<OptionListEntity> list) { mList = list; } @Override public int getCount() { return mList.size(); } @Override public Object getItem(int i) { return null; } @Override public long getItemId(int i) { return i; } @Override public View getView(final int i, View view, ViewGroup viewGroup) { ViewHolder viewHolder = null; if (view == null) { view = LayoutInflater.from(context).inflate(R.layout.item_exchange_coins, viewGroup, false); viewHolder = new ViewHolder(); viewHolder.exchangeCoinsTv = (TextView) view.findViewById(R.id.exchange_coins_tv); viewHolder.exchangeGiveCoinsTv = (TextView) view.findViewById(R.id.exchange_coins_give_tv); viewHolder.exchangeMoneyCb = (CheckBox) view.findViewById(R.id.exchange_money_tv); view.setTag(viewHolder); } else { viewHolder = (ViewHolder) view.getTag(); } final OptionListEntity model = mList.get(i); viewHolder.exchangeCoinsTv.setText(context.getString(R.string.e_coin_count_rear, model.getEcoin())); viewHolder.exchangeGiveCoinsTv .setText(context.getString(R.string.e_coin_give_count_rear, model.getFree())); viewHolder.exchangeMoneyCb .setText(context.getString(R.string.cash_count_simple, model.getRmb() / 100)); viewHolder.exchangeMoneyCb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean b) { if (isCheckMap.size() > 0) { isCheckMap.remove(lastPosition); } checkedRmb = model.getRmb(); isCheckMap.put(i, true); lastPosition = i; ExchangeCoinsAdapter.this.notifyDataSetChanged(); } }); if (isCheckMap != null && isCheckMap.containsKey(i)) { viewHolder.exchangeMoneyCb.setSelected(isCheckMap.get(i)); } else { viewHolder.exchangeMoneyCb.setSelected(false); } return view; } public int getCheckedRmb() { return checkedRmb; } protected static class ViewHolder { TextView exchangeCoinsTv; TextView exchangeGiveCoinsTv; CheckBox exchangeMoneyCb; }}
3 0
- android ListView单选功能
- android listview 单选功能
- Android实现listView的单选功能
- Android ListView 自定义用法(ListView 实现单选功能)
- Android小功能:在ListView中实现单选功能
- android ListView中Checkbox实现单选,全选,全不选功能
- ListView实现单选功能
- ListView 加checkBox实现 单选功能
- Listview实现简单的单选功能
- android Listview checkbox 单选
- android中listView单选
- Android ListView单选CheckBox
- android listView实现单选
- Android ListView实现单选
- (Android)五分钟让你轻松学会ListView单选和多选功能
- (Android)五分钟让你轻松学会ListView单选和多选功能
- Android ListView中点击单行实现RadioButton的单选功能,自定义Item布局文件
- ListView单选及多选等功能实现
- Java ClassLoader
- 【转载】人生如梦游戏间,RPG游戏开源开发讲座(JAVA篇)[1]——风云初现
- 使用脚本编写 Vim 编辑器,第 1 部分: 变量、值和表达式
- UITextField
- 数论-沈阳站-hdu-5514-容斥
- android listview 单选功能
- 【POJ 1699】 Best Sequence(KMP+状压DP)
- trtvetvwrtv
- 使用脚本编写 Vim 编辑器,第 2 部分: 用户定义函数
- APP应用接入ApplePay
- Python socket 模块
- Android Parcelable和Serializable的区别
- ProcessOn -在线绘图
- 第26讲项目1——投票表决器