@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;
// }
}
分享到:
相关推荐
实现RadioButton单选的操作方式与ListView基本相同,主要区别在于GridView的布局管理和布局参数。在GridView中,每一项也是由一个单独的布局文件定义,同样需要自定义Adapter并处理RadioButton的选中状态。 综上所...
综上所述,实现“带checkbox和radiobutton的listview(实现翻页保存和单选)”涉及到Android的自定义Adapter、数据绑定、ListView的分页加载、状态保存以及单选功能的实现。这是一个涉及多个技术点的综合性任务,需要...
- 可以使用RadioButton或者CheckBox来实现单选功能,但通常在ListView中推荐使用RadioGroup,因为它能自动处理单选逻辑。 - 在ListView的Adapter中,我们需要为每个Item设置一个RadioGroup,并在其中包含一个...
单选实现的核心在于RadioGroup和RadioButton的配合。RadioGroup是一个可以包含多个RadioButton的容器,它会管理这些RadioButton的单选行为。当一个RadioButton被选中时,其他同组内的RadioButton会被自动取消选中。 ...
为了实现单选功能,我们可以使用RadioGroup和RadioButton控件。RadioGroup是一个可以包含多个RadioButton的容器,它确保在同一时间只有一个RadioButton被选中。下面是实现步骤: 1. **创建RadioButton布局**:为...
1. **ListView单选**:通常可以使用RadioGroup和RadioButton结合Adapter来实现。每个ListView项对应一个RadioButton,RadioGroup用于管理所有RadioButton,确保每次只有一个被选中。在getView()方法中,设置点击事件...
3. **RadioButton**: RadioButton是Android中的单选按钮控件,用于在一个组内提供互斥的选择。在ListView中,每个列表项通常包含一个RadioButton,当用户点击某一行时,该行的RadioButton被选中。 4. **自定义布局...
`ListViewRadioBtnDemo`这个项目显然是关于如何在ListView中实现自定义单选框样式的实例。在这个实例中,开发者可能通过自定义适配器(Adapter)和视图(View)来达到个性化的效果,以增强用户界面的交互性和视觉...
在ListView中实现单选,我们可以使用RadioGroup和RadioButton的组合,或者自定义一个Adapter。 2. RadioGroup作为ListView的Header,包含一组RadioButton。当用户点击ListView中的项时,对应的RadioButton会被选中...
在ListView中实现单选通常采用RadioGroup配合RadioButton的方式。每个ListView项都包含一个RadioButton,RadioGroup作为父容器,设置其orientation为vertical,这样在同一时刻只有一个RadioButton可以被选中。通过...
在本教程中,我们将探讨如何在Android系统中利用ListView结合单选按钮(RadioButton)来实现一个功能性的选择列表,以及如何设置默认选中项。 首先,我们需要了解ListView的基本用法。ListView是Android SDK中的一...
在这个DEMO中,开发者专注于解决在ListView中使用单选按钮(RadioButton)时遇到的选中问题。ListView结合单选按钮可以实现多选项中的单选功能,比如在设置界面让用户选择一个首选项。 首先,我们来详细了解一下...
对于单选功能,一般会用到RadioGroup和RadioButton控件。在ListView的适配器中,每个列表项包含一个RadioButton,RadioGroup可以在整个ListView层级进行管理,确保一次只能选中一个项目。当RadioButton的状态改变时...
在Android开发中,ListView是用于显示可滚动列表的视图组件,而RadioButton是单选按钮控件,常用于实现用户只能选择一个选项的功能。当两者结合时,通常是为了在ListView的每一行中提供一个可选的选项。这种设计在很...
1. 单选:在ListView中实现单选通常使用RadioGroup配合RadioButton。每个ListView项中包含一个RadioButton,通过设置RadioGroup的onCheckedChangeListener监听选择状态。当选中一个RadioButton时,会自动取消其他项...
3. **使用ListView展示选项**:在每个表单页面的Fragment布局中,添加一个ListView,并创建一个自定义的列表项布局,包括文本和单选/多选控件。接着,创建一个适配器来填充ListView的数据,如ArrayList或Cursor,...
在Android开发中,RadioButton是用户界面(UI)设计中常用的一种控件,它通常用于实现一组选项中的单选功能。自定义RadioButton允许开发者根据项目需求调整其外观、交互和功能,以提供更个性化的用户体验。以下是对...
- 虽然标题提到“非CheckBox”,但还可以考虑使用Switch、RadioButton等其他控件,或者自定义视图来实现全选功能,具体取决于设计需求。 以上就是关于`AndroidListView全选功能,非CheckBox`的主要知识点。通过...
1. 基本输入控件:如Button(按钮)、TextBox(文本框)、Label(标签)、CheckBox(复选框)、RadioButton(单选按钮)等,它们构成了应用程序的基本交互元素。 2. 数据输入控件:ComboBox(下拉框)、...
通过将多个`RadioButton`放入`RadioGroup`中,可以实现单选功能。`RadioGroup`会自动处理单选逻辑,当一个按钮被选中时,其他按钮会自动取消选中。`RadioButton`的选中状态可以通过`isChecked()`方法进行检查,而`...