這兩個控件就是提供給用戶進行選擇的時候一種好的體驗:比如有時候不需要用戶親自輸入,那麼我們就提供給用戶操作更快捷的選項。單選按鈕(RadioButton)就是在這個選項中,用戶只能選擇一個選項。而復選框(CheckBox)控件顧名思義就是可以選擇多個選項。下面就介紹這兩個控件。
5.2.1示例:
示例一:RadioButton控件的用法(這裡采用布局文件方法來演示,先說明RadioButton的用法):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<!--這裡是定義了一組RadioButton,然後分為三個選項-->
<RadioButton
android:id="@+id/first_radiobutton"
android:checked="true"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="onAction"
android:text="男" />
<RadioButton
android:id="@+id/second_radiobutton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="onAction"
android:text="女" />
<RadioButton
android:id="@+id/third_radiobutton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="onAction"
android:text="其他" />
</LinearLayout>
這上面是給出的布局文件的代碼,這裡主要是實現圖5.1的布局界面,而真正要實現功能的代碼不在這塊。上述代碼中的:android:checked="true"; 是用來設置默認選中的那個選項,而android:onClick="onAction"是設置監聽事件方法,在java代碼中實現。這裡可以使用RadioGroup要定義一組按鈕,也就是說,在這一個組內,選項有用。這裡采用java代碼實現。代碼如下:
package xbb.bzq.android.app;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.RadioButton;
public class RadioButtonAndCheckBoxTestActivity extends Activity {
//定義三個RadioButton變量
private RadioButton mButton1, mButton2, mButton3;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//實例化三個單選按鈕控件
mButton1 =
(RadioButton) findViewById(R.id.first_radiobutton);
mButton2 =
(RadioButton) findViewById(R.id.second_radiobutton);
mButton3 =
(RadioButton) findViewById(R.id.third_radiobutton);
}
/**
* 這是實現的監聽方法,主要是實現修改選項的值
* @param v
*/
public void onAction(View v) {
//通過獲取id來判斷用戶的選擇,然後改變控件的選擇狀態
switch (v.getId()) {
case R.id.first_radiobutton:
mButton2.setChecked(false);
mButton3.setChecked(false);
mButton1.setChecked(true);
break;
case R.id.second_radiobutton:
mButton1.setChecked(false);
mButton3.setChecked(false);
mButton2.setChecked(true);
break;
case R.id.third_radiobutton:
mButton2.setChecked(false);
mButton1.setChecked(false);
mButton3.setChecked(true);
break;
}
}
}