RadioButton(单选按钮): 它是一种单个圆形单选框双状态的按钮,可以选择或不选择。在RadioButton没有被选中时,用户能够按下或点击来选中它。但是,与复选框相反,用户一旦选中就不能够取消选中。
通常RadioButtton由两部分组成:RadioButton和RadioGroup,RadioGroup是单选组合框,可以容纳多个RadioButton的容器.在没有RadioGroup的情况下,RadioButton可以全部都选中;当多个RadioButton被RadioGroup包含的情况下,RadioButton只可以选择一个。
并由setOnCheckedChangeListener(),来对单选按钮进行监听。
首先我们来看一下RadioButton 的效果图:单击了学生选项。
![](https://i-blog.csdnimg.cn/blog_migrate/dd1115c2f5a58bf0084e0959d4db84d4.jpeg)
mainactivity.java
package com.example.raidonbuttondemo;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.RadioGroup;
import android.widget.Toast;
import android.widget.RadioGroup.OnCheckedChangeListener;
public class MainActivity extends Activity {
private RadioGroup radioGroup ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
radioGroup = (RadioGroup)findViewById(R.id.radiogroup1);
radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup arg0, int ID) {
if(ID==R.id.radioBtn1){
Toast.makeText(getApplicationContext(),"你选择了学生",1000).show();
}
if(ID==R.id.radioBtn2){
Toast.makeText(MainActivity.this,"你选择了工人",1000).show();
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
activity_layou.mxl
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" >
<RadioGroup android:id="@+id/radiogroup1" android:layout_height="wrap_content" android:layout_width="fill_parent" android:orientation="vertical" > <RadioButton android:id="@+id/radioBtn1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/radioBtn1" /> <!-- 在两个RadioButton之间画条横线 --> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="#ffffff" /> <RadioButton android:id="@+id/radioBtn2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/radioBtn2" /> </RadioGroup> </RelativeLayout>
strings.xml,
添加:<string name="radioBtn1">学生</string> <string name="radioBtn2">工人</string>
以上是关于RadioButton 的简单理解。
如果想隐藏 RadioButton前面的按键圈,那么如何做??
在布局文件 layout_activity.xml 中<RadioButton />添加 android: button="@null"
效果图:
![](https://i-blog.csdnimg.cn/blog_migrate/7e7ac7a381b4312296011347061827e3.jpeg)