万书网 > 文学作品 > Android从入门到精通 > 第26页

第26页





break;  //跳出for循环



}



}



}



});

下面以例3.14中介绍的实例为例,具体说明如何获取单选按钮组的值。首先打开例3.14中的主活动MainActivity,然后在onCreate()方法中编写获取单选按钮组的值的代码。这里,通过以下两种方式来完成。

(1)在改变单选按钮组的值时获取

获取单选按钮组,并为其添加事件监听器,在该事件监听器的onCheckedChanged()方法中获取被选择的单选按钮的值,并输出到日志中,具体代码如下:

final  RadioGroup  sex  =  (RadioGroup)  findViewById(R.id.radioGroup1);  //获取单选按钮组



//为单选按钮组添加事件监听器



sex.setOnCheckedChangeListener(new  OnCheckedChangeListener()  {



@Override



public  void  onCheckedChanged(RadioGroup  group,  int  checkedId)  {



RadioButton  r  =  (RadioButton)  findViewById(checkedId);  //获取被选择的单选按钮



Log.i("单选按钮",  "您的选择是:"  +  r.getText());



}



});

(2)单击“提交”按钮时获取

获取“提交”按钮,并为“提交”按钮添加单击事件监听器,在重写的onClick()方法中通过for循环遍历单选按钮组,并获取到被选择项,具体代码如下:

Button  button  =  (Button)  findViewById(R.id.button1);  //获取提交按钮



//为“提交”按钮添加单击事件监听器



button.setOnClickListener(new  OnClickListener()  {



@Override



public  void  onClick(View  v)  {



//通过for循环遍历单选按钮组



for  (int  i  =  0;  i  <  sex.getChildCount();  i++)  {



RadioButton  r  =  (RadioButton)  sex.getChildAt(i);



if  (r.isChecked())  {  //判断单选按钮是否被选中



Log.i("单选按钮",  "性别:"  +  r.getText());



break;  //跳出for循环



}



}



}



});

这时,再次运行例3.14,选中单选按钮“女”后,单击“提交”按钮,在日志面板中将显示如图3.20所示的内容。



图3.20 在日志面板中显示获取到的单选按钮的值

2.  复选框

在默认情况下,复选框显示为一个方块图标,并且在该图标旁边放置一些说明性文字。与单选按钮唯一不同的是,复选框可以进行多选设置,每一个复选框都提供“选中”和“不选中”两种状态。在Android中,复选框使用CheckBox表示,而CheckBox类又是Button的子类,所以可以直接使用Button支持的各种属性。

在Android中,可以使用两种方法向屏幕中添加复选框:一种是通过在XML布局文件中使用标记添加;另一种是在Java文件中,通过new关键字创建。推荐采用第一种方法,也就是通过在XML布局文件中添加复选框,其基本语法格式如下:




android:id="@+id/ID号"



android:layout_width="wrap_content"



android:layout_height="wrap_content"



>





由于使用复选框可以选中多项,所以为了确定用户是否选择了某一项,还需要为每一个选项添加事件监听器。例如,要为id为like1的复选框添加状态改变事件监听器,可以使用下面的代码:

final  CheckBox  like1=(CheckBox)findViewById(R.id.like1);  //根据id属性获取复选框



like1.setOnCheckedChangeListener(new  OnCheckedChangeListener()  {





@Override



public  void  onCheckedChanged(CompoundButton  buttonView,  boolean  isChecked)  {



if(like1.isChecked()){  //判断该复选框是否被选中



like1.getText();  //获取选中项的值



}



}



});

例3.15   在Eclipse中创建Android项目,名称为3.15,实现在屏幕上添加选择爱好的复选框,并获取选择的值。(实例位置:光盘\TM\sl\3\3.15)

(1)修改新建项目的res\layout目录下的布局文件main.xml,将默认添加的垂直线性布局管理器设置为水平线性布局管理器,在该布局管理器中添加一个TextView组件、3个复选框和一个提交按钮,关键代码如下:




android:layout_width="wrap_content"



android:layout_height="wrap_content"



android:text="爱好:"



android:width="100px"



android:gravity="right"



android:height="50px"  />






android:id="@+id/like1"



android:layout_width="wrap_content"



android:layout_height="wrap_content"/>






android:id="@+id/like2"



android:layout_width="wrap_content"



android:layout_height="wrap_content"/>






android:id="@+id/like3"



android:layout_width="wrap_content"



android:layout_height="wrap_content"/>