单选按钮RadioButton在Android平台上也应用的非常多,比如一些选择项的时候,会用到单选按钮,实现单选按钮由两部分组成,也就是RadioButton和RadioGroup配合使用
RadioButton的单选按钮;
RadioGroup是单选组合框,用于将RadioButton框起来;
在没有RadioGroup的情况下,RadioButton可以全部都选中;
当多个RadioButton被RadioGroup包含的情况下,RadioButton只可以选择一个;
注意:单选按钮的事件监听用setOnCheckedChangeListen
例子:
一道选择题,选择哪个城市美女最多,当然,这个就是为了测试
RadioTest.java
- package
org.loulijun.radio; -
- import
android.app.Activity; - import
android.os.Bundle; - import
android.view.Gravity; - import
android.widget.RadioButton; - import
android.widget.RadioGroup; - import
android.widget.TextView; - import
android.widget.Toast; -
- public
class RadioTest extends Activity { -
-
TextView textview; -
RadioGroup radiogroup; -
RadioButton radio1,radio2,radio3,radio4; -
@Override -
public void onCreate(Bundle savedInstanceState) { -
super.onCreate(savedInstanceState); -
setContentView(R.layout.main); -
textview=(TextView)findViewById(R.id.textview1); -
radiogroup=(RadioGroup)findViewById(R.id.radiogroup1); -
radio1=(RadioButton)findViewById(R.id.radiobutton1); -
radio2=(RadioButton)findViewById(R.id.radiobutton2); -
radio3=(RadioButton)findViewById(R.id.radiobutton3); -
radio4=(RadioButton)findViewById(R.id.radiobutton4); -
-
radiogroup.setOnCheckedChangeListen er(new RadioGroup.OnCheckedChangeListener() { -
-
@Override -
public void onCheckedChanged(RadioGroup group, int checkedId) { -
// TODO Auto-generated method stub -
if(checkedId==radio2.getId()) -
{ -
DisplayToast("正确答案:"+radio2.getText()+",恭喜你,回答正确!"); -
}else -
{ -
DisplayToast("请注意,回答错误!"); -
} -
} -
}); -
} -
public void DisplayToast(String str) -
{ -
Toast toast=Toast.makeText(this, str, Toast.LENGTH_LONG); -
toast.setGravity(Gravity.TOP,0,220); -
toast.show(); -
} - }
- <?xml
version="1.0" encoding="utf-8"?> - <resources>
-
<string name="hello">哪个城市美女多?</string> -
<string name="app_name">单选按钮测试</string> -
<string name="radiobutton1">杭州</string> -
<string name="radiobutton2">成都</string> -
<string name="radiobutton3">重庆</string> -
<string name="radiobutton4">苏州</string> - </resources>
- <?xml
version="1.0" encoding="utf-8"?> - <LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android" -
android:orientation="vertical" -
android:layout_width="fill_parent" -
android:layout_height="fill_parent" -
> - <TextView
-
android:layout_width="fill_parent" -
android:layout_height="wrap_content" -
android:text="@string/hello" -
android:id="@+id/textview1" -
/> -
<RadioGroup -
android:id="@+id/radiogroup1" -
android:layout_width="wrap_content" -
android:layout_height="wrap_content" -
android:orientation="vertical" -
android:layout_x="3px" -
> -
<RadioButton -
android:id="@+id/radiobutton1" -
android:layout_width="wrap_content" -
android:layout_height="wrap_content" -
android:text="@string/radiobutton1" -
/> -
<RadioButton -
android:id="@+id/radiobutton2" -
android:layout_width="wrap_content" -
android:layout_height="wrap_content" -
android:text="@string/radiobutton2" -
/> -
<RadioButton -
android:id="@+id/radiobutton3" -
android:layout_width="wrap_content" -
android:layout_height="wrap_content" -
android:text="@string/radiobutton3" -
/> -
<RadioButton -
android:id="@+id/radiobutton4" -
android:layout_width="wrap_content" -
android:layout_height="wrap_content" -
android:text="@string/radiobutton4" -
/> -
</RadioGroup> - </LinearLayout>
二:修改RadioButton样式
可能你觉得RadioButton的样式不好看,没关系,你可以自己设置喜欢的图片显示,方法如下:
1)在drawable文件夹下增加文档myradiobutton.xml,描述button在各个状态下得图片:
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/radio_button_selected" android:state_checked="true"/>
<item android:drawable="@drawable/radio_button" />
</selector>
2)然后在布局文件中修改Radiobutton属性(android:button):
<RadioButton
android:id=
"@+id/rb_5"
android:layout_width=
"120px"
android:layout_height=
"85px"
android:button="@null"
android:button=
"@drawable/myradiobutton"
/>
|