Android 列表里的radioButton

来源:互联网 发布:淘宝围巾店 编辑:程序博客网 时间:2024/06/01 23:27

适配器——单选 radioButton    重点是适配器里 radioButton 的 setOnCheckedChangeListener事件

/** * 适配器 * 2014-12-23 * @author nm */public class ListAdapter extends BaseAdapter {private Context context;private List<HashMap<String, Object>> listItems = new ArrayList<HashMap<String, Object>>();private int temp = -1;public ListAdapter(Context context, ArrayList<HashMap<String, Object>> list_period) {super();this.context = context;this.listItems = list_period;}@Overridepublic int getCount() {return listItems.size();}@Overridepublic Object getItem(int position) {return position;}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View view, ViewGroup viewgroup) {ImgTextWrapper wrapper;if (view == null) {wrapper = new ImgTextWrapper();LayoutInflater inflater = LayoutInflater.from(context);view = inflater.inflate(R.layout.item_period, null);view.setPadding(5, 5, 5, 5);view.setBackgroundResource(Color.TRANSPARENT);wrapper.tv_item_period = (TextView) view.findViewById(R.id.tv_item_period);wrapper.rb_item_period = (RadioButton) view.findViewById(R.id.rb_item_period);view.setTag(wrapper);} else {wrapper = (ImgTextWrapper) view.getTag();}String period = listItems.get(position).get("period").toString();wrapper.tv_item_period.setText(period);wrapper.rb_item_period.setId(position);wrapper.rb_item_period.setOnCheckedChangeListener(new OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {if(isChecked){                    if(temp != -1){                        RadioButton tempButton =  (RadioButton)CaseProposePrevActivity.this.findViewById(temp);                         tempButton.setChecked(false);                     }                    temp =  buttonView.getId();                 }}});return view;}private class ImgTextWrapper {TextView tv_item_period;RadioButton rb_item_period;}}

适配

ListAdapter listAdapter = new ListAdapter(getApplicationContext(), list_period); listview_period.setAdapter(simpleAdapter2);



0 0