private class MyAdapter extends BaseAdapter { private List<String> sizeData; private LayoutInflater inflater; public MyAdapter(List<String> sizeData, Context context) { this.sizeData = sizeData; this.inflater = LayoutInflater.from(context); } @Override public int getCount() { return sizeData.size(); } @Override public Object getItem(int position) { return position; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = inflater.inflate( R.layout.layout_goodsdetailtype_item, null); } RadioButton city_tv = (RadioButton) convertView .findViewById(R.id.goodsdetailtype_rb); city_tv.setText(this.sizeData.get(position)); city_tv.setOnClickListener(AddCartFragment.this); city_tv.setTag(position); radioButtonMap.put(position, city_tv); return convertView; } }
gridview中每个item都填充一个radiobutton并设置tag
并创建一个map<integer,radiobutton> 存放创建的radiobutton
给每一个radiobutton添加点击事件
@Override public void onClick(View v) { for (int i = 0; i < radioButtonMap.size(); i++) { if (radioButtonMap.get(i).getTag() == (Integer) v.getTag()) { radioButtonMap.get(i).setChecked(true); } else { radioButtonMap.get(i).setChecked(false); } } }
就可以实现多行单选了
radiobutton实现多行单选
最新推荐文章于 2023-04-30 19:35:20 发布