一.单选按钮
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部分:
"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" >
id="@+id/grid"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:columnCount="2"
android:rowCount="6" >
id="@+id/lable_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="用户名:"
android:textSize="18sp" />
id="@+id/text_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="fill"
android:hint="请填写登录账号" />
id="@+id/lable_2"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:text="密码:"
android:textSize="18sp" />
id="@+id/text_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:password="true"
android:layout_gravity="fill" />
id="@+id/lable_3"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:text="年龄:"
android:textSize="18sp" />
id="@+id/text_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="fill"
android:inputType="number" />
id="@+id/lable_7"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:text="性别:"
android:textSize="18sp" />
id="@+id/sex"
android:orientation="horizontal" >
id="@+id/men"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="男" />
id="@+id/women"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="女" />
id="@+id/lable_4"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:text="生日:"
android:textSize="18sp" />
id="@+id/text_4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="fill" />
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" />
id="@+id/text_5"
android:layout_gravity="fill"
android:hint="请填写你的电话号码"
android:inputType="number" />
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" />
id="@+id/grid"
android:columnCount="2"
android:layout_gravity="fill"
android:rowCount="2" >
id="@+id/mesck"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="听音乐" />
id="@+id/booking"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="看小说" />
id="@+id/back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="骑车" />
id="@+id/bool"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="打篮球" />
id="@+id/show"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/grid" />
界面主要采用线性布局实现,将线性布局放在了相对布局中;
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);
}
}