在布局文件中,RaidoButton需要放在RadioGroup中。代表一组中只能选中一个。
layout文件:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/radio_tv" /> <RadioGroup android:id="@+id/radioGroup" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" > <RadioButton android:id="@+id/mailRadio" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/mailRadio" /> <RadioButton android:id="@+id/femailRadio" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/femailRadio" /> </RadioGroup> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/checkbox_tv" /> <CheckBox android:id="@+id/read_checkbox" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/read_checkbox" /> <CheckBox android:id="@+id/watchtv_checkbox" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/watchtv_checkbox" /> <CheckBox android:id="@+id/playgame_checkbox" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/playgame_checkbox" /> </LinearLayout>
strings.xml:
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="mailRadio">男</string> <string name="femailRadio">女</string> <string name="radio_tv">请选择性别:</string> <string name="checkbox_tv">请选择爱好:</string> <string name="watchtv_checkbox">看电视</string> <string name="read_checkbox">看书</string> <string name="playgame_checkbox">打游戏</string> <string name="radio_checkbox_text">单选和多选按钮的使用</string> </resources>
java:
import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.RadioGroup.OnCheckedChangeListener; import android.widget.Toast; public class RadioAndCheckboxActivity extends Activity { private RadioGroup radioGroup = null; private RadioButton maleRadio = null; private RadioButton femailRadio = null; private CheckBox readCheckbox = null; private CheckBox watchTvCheckBox = null; private CheckBox playgameCheckBox = null; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); this.setContentView(R.layout.radio_checkbox); radioGroup = (RadioGroup) findViewById(R.id.radioGroup); maleRadio = (RadioButton) findViewById(R.id.mailRadio); femailRadio = (RadioButton) findViewById(R.id.femailRadio); readCheckbox = (CheckBox) findViewById(R.id.read_checkbox); watchTvCheckBox = (CheckBox) findViewById(R.id.watchtv_checkbox); playgameCheckBox = (CheckBox) findViewById(R.id.playgame_checkbox); // 在RadioGroup上添加监听器 radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { System.out.println(checkedId); if (maleRadio.getId() == checkedId) { Toast.makeText(RadioAndCheckboxActivity.this, maleRadio.getText(), Toast.LENGTH_SHORT).show(); } else if (femailRadio.getId() == checkedId) { Toast.makeText(RadioAndCheckboxActivity.this, femailRadio.getText(), Toast.LENGTH_SHORT).show(); } } }); readCheckbox.setOnCheckedChangeListener(new MyCheckboxCheckedChangeListener()); watchTvCheckBox.setOnCheckedChangeListener(new MyCheckboxCheckedChangeListener()); playgameCheckBox.setOnCheckedChangeListener(new MyCheckboxCheckedChangeListener()); System.out.println(readCheckbox.getText()); } class MyCheckboxCheckedChangeListener implements CompoundButton.OnCheckedChangeListener { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { String msg = buttonView.getText().toString(); Log.i("RadioAndCheckboxActivity", msg + "-->checked:" + isChecked); if (isChecked) { Toast.makeText(RadioAndCheckboxActivity.this, msg + " Checked!", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(RadioAndCheckboxActivity.this, msg + " Not checked!", Toast.LENGTH_SHORT).show(); } } } }
注意2点:
1.在RadioGroup上添加OnCheckedChangeListener,不是在RadioButton。
2.CheckBox添加的Listener是CompoundButton.OnCheckedChangeListener,Checkbox继承CompoundButton,使用的CompoundButton的OnCheckedChangeListener。
效果:
相关推荐
对于JavaScript和React.js,你可以利用CSS来改变`input[type="checkbox"]`和`input[type="radio"]`的伪元素,例如`::before`和`::after`,或者使用第三方库提供的API来定制样式。 总的来说,改变`Checkbox`和`...
在Android应用开发中,TabHost和Fragment是常用于构建多标签页界面的组件,而随着技术的演进,开发者开始采用更加现代的方式来实现相同的功能,例如RadioGroup中的RadioButton结合ViewPager。这种方式不仅提供了更好...
在Android开发中,`RadioButton`和`RadioGroup`是两个非常重要的组件,它们通常用于创建单选按钮选项,让用户在一组...通过理解这两个组件的工作原理和使用方法,你可以更好地设计和实现各种功能丰富的Android应用。
Android ListView中动态添加RaidoButton的实例详解 这里讲解的内容是:从数据库中取得数据,将这些数据的value值赋值给Radiobutton的text属性,将这些数据的key值赋值给radiobutton的key值。同时实现点击一整行,...
下面我们将深入探讨`Checkbutton`和`Radiobutton`的使用方法以及如何为它们添加自定义皮肤。 `Checkbutton` 是一种复选框,允许用户选择一个或多个选项。在Tkinter中,我们可以通过`ttk`模块(Themed Tkinter)创建...
1:fragment+raidoButton 实现点击radioButton 切换视图 2:fragment+viewpager 通过对滑动事件的监听、切换视图 3:在2的基础上,进行viewpager嵌套。 并获取不同的监听事件...(PS:更大层面上适合初学者学习和了解)