zoukankan      html  css  js  c++  java
  • 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:运行结果

  • 相关阅读:
    百度离线地图
    lightdb for postgresql高可用之repmgr组件日常管理命令及注意实现
    LightDB13.3-21.2 Release Note
    postgresql的FRONTEND宏定义
    ppt设置自动循环播放
    url上的jsessionid问题及解决方法
    postgresql xact
    pg_control文件的作用
    Extension module_pathname and .sql.in
    psr/cache 通过composer 安装报错syntax error, unexpected '|', expecting variable (T_VARIABLE)
  • 原文地址:https://www.cnblogs.com/yshyee/p/4199143.html
Copyright © 2011-2022 走看看