适配器——单选 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;
}
@Override
public int getCount() {
return listItems.size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public 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() {
@Override
public 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);
完