首页 > 代码库 > ListView中RadioButton实现单项选择
ListView中RadioButton实现单项选择
1:FragmentHack5.java
public class FragmentHack5 extends Fragment { View view; ListView lvCountries; Button btnShow; CountryListAdapter adapter; List<String> list; @Override public void onAttach(Activity activity) { super.onAttach(activity); list = new ArrayList<String>(); list.add("中国"); list.add("俄罗斯"); list.add("美国"); list.add("德国"); list.add("英国"); list.add("西班牙"); list.add("法国"); list.add("巴西"); list.add("印度"); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { view = inflater.inflate(R.layout.fragment_hack5,container,false); btnShow = (Button)view.findViewById(R.id.btnShow); lvCountries = (ListView)view.findViewById(R.id.lvCountries); adapter = new CountryListAdapter(getActivity(),R.layout.list_country_item,list); lvCountries.setAdapter(adapter); btnShow.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(getActivity(),adapter.getChoiceCountry(),Toast.LENGTH_SHORT).show();; } }); return view; }}
2:CountryListAdapter.java
public class CountryListAdapter extends ArrayAdapter<String>{ int resourceId; int choiceId = -1; public CountryListAdapter(Context context, int resourceId, List<String> objects){ super(context,resourceId,objects); this.resourceId = resourceId; } @Override public View getView(final int position, View convertView, ViewGroup parent) { String country = getItem(position); final ViewHolder holder; if(convertView==null){ holder = new ViewHolder(); convertView = LayoutInflater.from(getContext()).inflate(resourceId,null); holder.rbCountry = (RadioButton)convertView.findViewById(R.id.rbCountry); convertView.setTag(holder); }else{ holder = (ViewHolder)convertView.getTag(); } holder.rbCountry.setText(country); if(choiceId==position){ holder.rbCountry.setChecked(true); }else{ holder.rbCountry.setChecked(false); } holder.rbCountry.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if(holder.rbCountry.isChecked()){ choiceId = position;//记住当前选中的下标 CountryListAdapter.this.notifyDataSetChanged(); } } }); return convertView; } static class ViewHolder{ public RadioButton rbCountry; } public String getChoiceCountry(){ return getItem(choiceId); }}
3:运行结果
ListView中RadioButton实现单项选择
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。