常用的Android Widget组件学习③-checkbox和radiogroup的介绍和应用。
一、checkbox的介绍与应用:
多项选择(checkbox)介绍和应用
首先在main.xml中定义一个Button
<Button
android:text="CheckBox"
android:id="@+id/check_box_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</Button>
然后再WigetDemo.java里面给该Button添加监听器
Button check_box_button=(Button) findViewById(R.id.check_box_button); check_box_button.setOnClickListener(check_box_button_listener); private Button.OnClickListener check_box_button_listener=new Button.OnClickListener(){ public void onClick(View v) { Intent intent=new Intent(); intent.setClass(WidgetDemo.this, CheckBoxActivity.class); startActivity(intent); } };
建立有一个新的CheckBoxActivity,修改其oncreate()方法,如下代码:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTitle("CheckBoxActivity");
setContentView(R.layout.checkbox);
find_and_modify_check_box_view();
}
再将其关联到checkbox.xml的布局模板上,
<?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"
>
<CheckBox
android:text="zhao"
android:id="@+id/zhao_cb"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</CheckBox>
<CheckBox
android:text="qian"
android:id="@+id/qian_cb"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</CheckBox>
<CheckBox
android:text="song"
android:id="@+id/song_cb"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</CheckBox>
<CheckBox
android:text="li"
android:id="@+id/li_cb"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</CheckBox>
</LinearLayout>
然后在checkbox.xml中添加一个Button
<Button
android:text="获取checkbox的值"
android:id="@+id/get_view_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</Button>
最后实现它的单击响应事件:
public class CheckBoxActivity extends Activity { CheckBox zhao_cb; CheckBox qian_cb; CheckBox song_cb; CheckBox li_cb; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setTitle("CheckBoxActivity"); setContentView(R.layout.checkbox); find_and_modify_get_view_button(); } private void find_and_modify_get_view_button() { zhao_cb = (CheckBox) findViewById(R.id.zhao_cb); qian_cb = (CheckBox) findViewById(R.id.qian_cb); song_cb = (CheckBox) findViewById(R.id.song_cb); li_cb = (CheckBox) findViewById(R.id.li_cb); Button get_view_button = (Button) findViewById(R.id.get_view_button); get_view_button.setOnClickListener(get_view_button_listener); } private Button.OnClickListener get_view_button_listener = new Button.OnClickListener() { public void onClick(View v) { String r=""; /*switch (v.getId()) { case R.id.zhao_cb: r=r+zhao_cb.getText(); break; case R.id.qian_cb: r=r+","+qian_cb.getText(); case R.id.song_cb: r=r+","+song_cb.getText(); case R.id.li_cb: r=r+","+li_cb.getText(); default: break; */ if(zhao_cb.isChecked()){ r=r+zhao_cb.getText(); } if(qian_cb.isChecked()){ r=r+","+qian_cb.getText(); } if(song_cb.isChecked()){ r=r+","+song_cb.getText(); } if(li_cb.isChecked()){ r=r+","+li_cb.getText(); } setTitle("Checked: "+r); } };
运行结果如下:
二、单项选择(radiogroup)介绍和应用:
在main.xml中添加一个button
<Button
android:text="RadioGroup"
android:id="@+id/Button01"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</Button>
这个button的响应时间:
Button radio_group_button=(Button) findViewById(R.id.radio_group_button); radio_group_button.setOnClickListener(radio_group_button_listener); private Button.OnClickListener radio_group_button_listener =new Button.OnClickListener(){ public void onClick(View v) { Intent intent=new Intent(); intent.setClass(WidgetDemo.this, RadioGroupActivity.class); startActivity(intent); } };
在新建的RadioGroup当中修改其onCreate方法
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTitle("RadioGroupActivity");
setContentView(R.layout.radiogroup);
mRadioGroup=(RadioGroup) findViewById(R.id.menu);
Button clearButton=(Button) findViewById(R.id.clear);
clearButton.setOnClickListener(this);
}
}
关联到radiogroup.xml上
<?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"
>
<RadioGroup
android:id="@+id/menu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checkedButton="@+id/xia">
<RadioButton
android:text="chong"
android:id="@+id/chong_rb"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</RadioButton>
<RadioButton
android:text="xia"
android:id="@+id/xia_rb"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</RadioButton>
<RadioButton
android:text="qiu"
android:id="@+id/qiu_rb"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</RadioButton>
<RadioButton
android:text="@+id/dong"
android:id="@+id/dong_rb"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</RadioButton>
</RadioGroup>
<Button
android:text="清除"
android:id="@+id/clear"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</Button>
</LinearLayout>
最后修改RadioGroupActivity.java
public class RadioGroupActivity extends Activity implements View.OnClickListener {
private RadioGroup mRadioGroup;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.radio_group);
setTitle("RadioGroupActivity");
mRadioGroup = (RadioGroup) findViewById(R.id.menu);
Button clearButton = (Button) findViewById(R.id.clear);
clearButton.setOnClickListener(this);
}
public void onClick(View v) {
mRadioGroup.clearCheck();
}
}