Android 適配器——單選 radioButton

適配器——單選 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);



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章