1、我们在布局文件中用一个按钮进行测试,给按钮注册事件,下面是布局文件的代码:
<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: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=".MainActivity" > <CheckBox android:id="@+id/checkBox1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginTop="18dp" android:text="@string/text_java" /> <CheckBox android:id="@+id/checkBox2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/checkBox1" android:layout_marginTop="36dp" android:text="@string/text_3G" /> <CheckBox android:id="@+id/checkBox3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/checkBox2" android:layout_below="@+id/checkBox2" android:layout_marginTop="43dp" android:text="@string/text_net" /> <CheckBox android:id="@+id/checkBox4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/checkBox3" android:layout_below="@+id/checkBox3" android:layout_marginTop="44dp" android:text="@string/text_PHP" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignRight="@+id/checkBox2" android:layout_below="@+id/checkBox4" android:layout_marginTop="58dp" android:onClick="getValues" android:text="@string/text_get" /> </RelativeLayout>
2、这是布局文件中引用的string.xml的值:
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">lession16-checkbox</string> <string name="action_settings">Settings</string> <string name="hello_world">Hello world!</string> <string name="text_java">Java专业</string> <string name="text_net">NET专业</string> <string name="text_PHP">PHP专业</string> <string name="text_3G">3G专业</string> <string name="text_get">获取值</string> </resources>
3、MainActivity中的代码:
package com.example.lession16_checkbox; import java.util.ArrayList; import java.util.List; import android.os.Bundle; import android.app.Activity; import android.app.AlertDialog; import android.view.Menu; import android.view.View; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.Toast; public class MainActivity extends Activity { //声明组件 private CheckBox cb1,cb2,cb3,cb4; //声明一个集合 private List<CheckBox> checkBoxs=new ArrayList<CheckBox>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取组件 cb1 = (CheckBox) findViewById(R.id.checkBox1); cb2 = (CheckBox) findViewById(R.id.checkBox2); cb3 = (CheckBox) findViewById(R.id.checkBox3); cb4 = (CheckBox) findViewById(R.id.checkBox4); //默认选项 cb2.setChecked(true); cb4.setChecked(true); //注册事件 cb1.setOnCheckedChangeListener(listener); cb2.setOnCheckedChangeListener(listener); cb3.setOnCheckedChangeListener(listener); cb4.setOnCheckedChangeListener(listener); //把四个组件添加到集合中去 checkBoxs.add(cb1); checkBoxs.add(cb2); checkBoxs.add(cb3); checkBoxs.add(cb4); } @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; } public void getValues(View v) { String content = ""; for (CheckBox cbx : checkBoxs) { if (cbx.isChecked()) { content += cbx.getText() + "\n"; } } if ("".equals(content)) { content = "您还没有选择尼"; } new AlertDialog.Builder(this).setMessage(content).setTitle("选中的内容如下") .setPositiveButton("关闭", null).show(); } CompoundButton.OnCheckedChangeListener listener = new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { // TODO Auto-generated method stub CheckBox box = (CheckBox) buttonView; Toast.makeText(getApplicationContext(), "获取的值:" + isChecked + "xxxxx" + box.getText(), Toast.LENGTH_LONG).show(); } }; }