一.單選按鈕
1.單選按鈕類:RadioButton
android:checked=”true” 設定該按鈕是否選中;
android:button=”@null” 去掉按鈕前的原點;
android:drawableRight=”@android:drawable/but_radio” 将圓形按鈕設定在左側顯示
2.單選按鈕控件通常與RadioGroup搭配使用。
RadioGroup是LinearLayout的子類,用于将多個單選按鈕組合為一組。
同一按鈕組内的單選按鈕隻能有一個被選中。
RadioGroup最主要的xml屬性是android:checkedButton,該屬性用于設定組内預設被選中的單選按鈕的id。RadioGroup最主要的方法有getCheckedRadioButtonId()和check(int radioButtonId)
<RadioGroup
android:orientation = "horizental">
<RadioButton/>
<RadioButton/>
<RadioButton/>
<RadioButton/>
</RadioGroup>
3.單選按鈕的事件處理:
以RadioGroup為機關進行處理 setOnCheckedChangListener(new OnCheckedChangListener(){匿名方法})
可以使用RadioGroup.getCheckedRadioButtonId()來獲得選中的單選按鈕的id值;
group.setOnCheckedChangeListener(new OnCheckedChangeListener() {
//對按鈕組添加按鈕事件;
@Override
public void onCheckedChanged(RadioGroup arg0, int id) {
//第一個參數為目前按鈕組對象;第二個參數為目前按鈕組選中的按鈕的id值;
// TODO Auto-generated method stub
if (R.id.radio_1 == id) {
//處理代碼;
}
}
});
二.複選按鈕
用法基本與Button相同
CheckBox對象.isChecked()方法可以用來判斷複選按鈕是否選中
事件監聽:
也是實作setOnCheckedChangListener(new OnCheckedChangListener(){匿名方法})
CheckBox.OnCheckedChangeListener boxs = new CheckBox.OnCheckedChangeListener() {
//複選框的添加事件
@Override
public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
//第一個參數為調用此方法的目前複選框按鈕,參數二為選中狀态
// TODO Auto-generated method stub
if (box_1.isChecked() == true) {//可以使用isChecked()方法來擷取并判斷
//執行代碼;
}
if (arg1) {//直接判斷按鈕狀态的值來處理
//執行代碼;
}
}
};
//給box_1添加事件監聽;
box_1.setOnCheckedChangeListener(boxs);
/*****************************************************************************************/
下面實作一個注冊界面:點選注冊按鈕後顯示所填寫内容:

代碼:
xml部分:
<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:gravity="center_horizontal"
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="com.example.logindemo_9015.MainActivity" >
<GridLayout
android:id="@+id/grid"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:columnCount="2"
android:rowCount="6" >
<TextView
android:id="@+id/lable_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="使用者名:"
android:textSize="18sp" />
<EditText
android:id="@+id/text_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="fill"
android:hint="請填寫登入賬号" />
<TextView
android:id="@+id/lable_2"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:text="密碼:"
android:textSize="18sp" />
<EditText
android:id="@+id/text_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:password="true"
android:layout_gravity="fill" />
<TextView
android:id="@+id/lable_3"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:text="年齡:"
android:textSize="18sp" />
<EditText
android:id="@+id/text_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="fill"
android:inputType="number" />
<TextView
android:id="@+id/lable_7"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:text="性别:"
android:textSize="18sp" />
<RadioGroup
android:id="@+id/sex"
android:orientation="horizontal" >
<RadioButton
android:id="@+id/men"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="男" />
<RadioButton
android:id="@+id/women"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="女" />
</RadioGroup>
<TextView
android:id="@+id/lable_4"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:text="生日:"
android:textSize="18sp" />
<EditText
android:id="@+id/text_4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="fill" />
<TextView
android:id="@+id/lable_5"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:inputType="number"
android:text="電話号碼:"
android:textSize="18sp" />
<EditText
android:id="@+id/text_5"
android:layout_gravity="fill"
android:hint="請填寫你的電話号碼"
android:inputType="number" />
<TextView
android:id="@+id/lable_6"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="clip_horizontal"
android:inputType="number"
android:text="愛好:"
android:textSize="18sp" />
<GridLayout
android:id="@+id/grid"
android:columnCount="2"
android:layout_gravity="fill"
android:rowCount="2" >
<CheckBox
android:id="@+id/mesck"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="聽音樂" />
<CheckBox
android:id="@+id/booking"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="看小說" />
<CheckBox
android:id="@+id/back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="騎車" />
<CheckBox
android:id="@+id/bool"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="打籃球" />
</GridLayout>
<Button
android:id="@+id/submit"
android:layout_columnSpan="2"
android:layout_gravity="fill"
android:text="注冊" />
</GridLayout>
<TextView
android:id="@+id/show"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/grid" />
</RelativeLayout>
界面主要采用線性布局實作,将線性布局放在了相對布局中;
java代碼:
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
public class MainActivity extends Activity {
//聲明變量資訊:
Button sumbit;
EditText text_1,text_2,text_3,text_4,text_5;
TextView show;
RadioGroup group;
CheckBox box_1,box_2,box_3,box_4;
RadioButton redio_1,redio_2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//擷取對象;
text_1=(EditText) findViewById(R.id.text_1);
text_2=(EditText) findViewById(R.id.text_2);
text_3=(EditText) findViewById(R.id.text_3);
text_4=(EditText) findViewById(R.id.text_4);
text_5=(EditText) findViewById(R.id.text_5);
sumbit=(Button) findViewById(R.id.submit);
show=(TextView) findViewById(R.id.show);
group=(RadioGroup) findViewById(R.id.sex);
box_1=(CheckBox) findViewById(R.id.mesck);
box_2=(CheckBox) findViewById(R.id.booking);
box_3=(CheckBox) findViewById(R.id.back);
box_4=(CheckBox) findViewById(R.id.bool);
redio_1=(RadioButton) findViewById(R.id.men);
redio_2=(RadioButton) findViewById(R.id.women);
//為送出按鈕添加事件
sumbit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String b="",r = "";
if(redio_1.isChecked()==true){//判斷第一個單選按鈕是否為選中狀态;
r=redio_1.getText().toString();
}
if(redio_2.isChecked()==true){
r=redio_2.getText().toString();
}
if(box_1.isChecked()){//判斷是否選擇box_1複選按鈕
b+=box_1.getText().toString();
}
if(box_2.isChecked()){
b+=box_2.getText().toString();
}
if(box_3.isChecked()){
b+=box_3.getText().toString();
}
if(box_4.isChecked()){
b+=box_4.getText().toString();
}
//group.getCheckedRadioButtonId();
show.setText("使用者名:"+text_1.getText().toString()+"\n年齡:"+text_3.getText().toString()+"\n性别:"+ r
+"\n日期:"+text_4.getText().toString()+"\n手機号:"+text_5.getText().toString()+"愛好:"+b);
}
});
}
@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;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}