`
tangweiye
  • 浏览: 150762 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类

重写ListView控件实现RadioButton单选

 
阅读更多
  @Override

        public View getView(int position, View convertView, ViewGroup parent) {

            convertView = MainActivity.this.getLayoutInflater().inflate(R.layout.item, null);  //解决办法: 每次都重新获取View

            Button button = (Button) convertView.findViewById(R.id.button);

            button.setText(s[position]);

            RadioButton radioButton = (RadioButton) convertView.findViewById(R.id.radioButton);

            radioButton.setId(position);  //把position设为radioButton的id

            radioButton.setOnCheckedChangeListener(new OnCheckedChangeListener() {

                

                @Override

                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

                    

                    if(isChecked){

                        //这段代码来实现单选功能

                        if(temp != -1){

                            RadioButton tempButton = (RadioButton) MainActivity.this.findViewById(temp);

                            if(tempButton != null){

                               tempButton.setChecked(false);

                            }

                            

                        }

                        

                        temp = buttonView.getId();

                        Log.i(TAG,"you are women- -   " + isChecked + "   " + temp);

                        

                    }

                }

            });

            

            //这里实现单选框选的回显,解决了单选框移出屏幕范围未选中状态

            if(temp == position){

                radioButton.setChecked(true);

            }

            return convertView;

        }

//            Holder holder;

//            if(convertView == null){    //1,当第一次加载ListView控件时  convertView为空 

//                convertView = MainActivity.this.getLayoutInflater().inflate(R.layout.item, null); //所以当ListView控件没有滑动时都会执行这条语句

//                holder = new Holder();

//                convertView.setTag(holder);

//            }else{

//                holder = (Holder) convertView.getTag();

//            }

//            

//            holder.button = (Button) convertView.findViewById(R.id.button);

//            holder.button.setText(s[position]);

//            

//            holder.radioButton = (RadioButton) convertView.findViewById(R.id.radioButton);   //

//            holder.radioButton.setId(position);  //2,因为这里对radioButton的id进行重新设置,滑动ListView时convertView不为空,上面的语句就没法得到radioButton对象,这条语句就会报空指针异常

          

//            holder.radioButton.setOnCheckedChangeListener(new OnCheckedChangeListener() {

//                

//                @Override

//                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

//                    

//                    if(isChecked){

//                        if(temp != -1){

//                            RadioButton tempButton = (RadioButton) MainActivity.this.findViewById(temp);

//                            tempButton.setChecked(false);

//                            

//                        }

//                        

//                        temp = buttonView.getId();

//                        Log.i(TAG,"you are women- -   " + isChecked + "   " + temp);

//                        

//                    }

//                }

//            });

//            return convertView;

//        }

//        private class Holder{

//            private Button button;

//            private RadioButton radioButton;

//        }

    }

 

分享到:
评论

相关推荐

    listview 里面加radiobutton 单选操作

    实现RadioButton单选的操作方式与ListView基本相同,主要区别在于GridView的布局管理和布局参数。在GridView中,每一项也是由一个单独的布局文件定义,同样需要自定义Adapter并处理RadioButton的选中状态。 综上所...

    带checkbox和radiobutton的listview(实现翻页保存和单选)

    综上所述,实现“带checkbox和radiobutton的listview(实现翻页保存和单选)”涉及到Android的自定义Adapter、数据绑定、ListView的分页加载、状态保存以及单选功能的实现。这是一个涉及多个技术点的综合性任务,需要...

    listview多行多列单选

    - 可以使用RadioButton或者CheckBox来实现单选功能,但通常在ListView中推荐使用RadioGroup,因为它能自动处理单选逻辑。 - 在ListView的Adapter中,我们需要为每个Item设置一个RadioGroup,并在其中包含一个...

    listview单选实现

    单选实现的核心在于RadioGroup和RadioButton的配合。RadioGroup是一个可以包含多个RadioButton的容器,它会管理这些RadioButton的单选行为。当一个RadioButton被选中时,其他同组内的RadioButton会被自动取消选中。 ...

    listview实现单选功能

    为了实现单选功能,我们可以使用RadioGroup和RadioButton控件。RadioGroup是一个可以包含多个RadioButton的容器,它确保在同一时间只有一个RadioButton被选中。下面是实现步骤: 1. **创建RadioButton布局**:为...

    Android三级目录、ListView单选/GridView单选、ListView多选/GridView多选

    1. **ListView单选**:通常可以使用RadioGroup和RadioButton结合Adapter来实现。每个ListView项对应一个RadioButton,RadioGroup用于管理所有RadioButton,确保每次只有一个被选中。在getView()方法中,设置点击事件...

    自定义的ListView结合RadioButton显示对话框列表数据

    3. **RadioButton**: RadioButton是Android中的单选按钮控件,用于在一个组内提供互斥的选择。在ListView中,每个列表项通常包含一个RadioButton,当用户点击某一行时,该行的RadioButton被选中。 4. **自定义布局...

    ListViewRadioBtnDemo自定义单选框样式

    `ListViewRadioBtnDemo`这个项目显然是关于如何在ListView中实现自定义单选框样式的实例。在这个实例中,开发者可能通过自定义适配器(Adapter)和视图(View)来达到个性化的效果,以增强用户界面的交互性和视觉...

    listview多选与单选模式demo

    在ListView中实现单选,我们可以使用RadioGroup和RadioButton的组合,或者自定义一个Adapter。 2. RadioGroup作为ListView的Header,包含一组RadioButton。当用户点击ListView中的项时,对应的RadioButton会被选中...

    listview全选、反选、单选、多选、全不选、获取选中数据等.zip

    在ListView中实现单选通常采用RadioGroup配合RadioButton的方式。每个ListView项都包含一个RadioButton,RadioGroup作为父容器,设置其orientation为vertical,这样在同一时刻只有一个RadioButton可以被选中。通过...

    Android 系统自带单选按钮的listView

    在本教程中,我们将探讨如何在Android系统中利用ListView结合单选按钮(RadioButton)来实现一个功能性的选择列表,以及如何设置默认选中项。 首先,我们需要了解ListView的基本用法。ListView是Android SDK中的一...

    这是一个关于ListView中的单选按钮的DEMO。

    在这个DEMO中,开发者专注于解决在ListView中使用单选按钮(RadioButton)时遇到的选中问题。ListView结合单选按钮可以实现多选项中的单选功能,比如在设置界面让用户选择一个首选项。 首先,我们来详细了解一下...

    listview_单选多选

    对于单选功能,一般会用到RadioGroup和RadioButton控件。在ListView的适配器中,每个列表项包含一个RadioButton,RadioGroup可以在整个ListView层级进行管理,确保一次只能选中一个项目。当RadioButton的状态改变时...

    ListViewAndRadioButton

    在Android开发中,ListView是用于显示可滚动列表的视图组件,而RadioButton是单选按钮控件,常用于实现用户只能选择一个选项的功能。当两者结合时,通常是为了在ListView的每一行中提供一个可选的选项。这种设计在很...

    android 单选、多选、侧滑目录等

    1. 单选:在ListView中实现单选通常使用RadioGroup配合RadioButton。每个ListView项中包含一个RadioButton,通过设置RadioGroup的onCheckedChangeListener监听选择状态。当选中一个RadioButton时,会自动取消其他项...

    用PagerView和ListView实现表单填写功能

    3. **使用ListView展示选项**:在每个表单页面的Fragment布局中,添加一个ListView,并创建一个自定义的列表项布局,包括文本和单选/多选控件。接着,创建一个适配器来填充ListView的数据,如ArrayList或Cursor,...

    自定义RadioButton

    在Android开发中,RadioButton是用户界面(UI)设计中常用的一种控件,它通常用于实现一组选项中的单选功能。自定义RadioButton允许开发者根据项目需求调整其外观、交互和功能,以提供更个性化的用户体验。以下是对...

    AndroidListView全选功能,非CheckBox

    - 虽然标题提到“非CheckBox”,但还可以考虑使用Switch、RadioButton等其他控件,或者自定义视图来实现全选功能,具体取决于设计需求。 以上就是关于`AndroidListView全选功能,非CheckBox`的主要知识点。通过...

    C#控件学习参考~有详细控件用途

    1. 基本输入控件:如Button(按钮)、TextBox(文本框)、Label(标签)、CheckBox(复选框)、RadioButton(单选按钮)等,它们构成了应用程序的基本交互元素。 2. 数据输入控件:ComboBox(下拉框)、...

    Android应用源码之32.单选复选控件学习.zip

    通过将多个`RadioButton`放入`RadioGroup`中,可以实现单选功能。`RadioGroup`会自动处理单选逻辑,当一个按钮被选中时,其他按钮会自动取消选中。`RadioButton`的选中状态可以通过`isChecked()`方法进行检查,而`...

Global site tag (gtag.js) - Google Analytics