每个多选框都是独立的,可以通过迭代所有多选框,然后根据其状态是否被选中再获取其值。
activity_main.xml
MainActivity.java
package com.example.checkbox;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.Toast;
import android.widget.CompoundButton.OnCheckedChangeListener;
public class MainActivity extends Activity implements OnCheckedChangeListener {
// 声明控件对象的集合
private List<CheckBox> ckbs;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化集合
ckbs = new ArrayList<CheckBox>();
// 把CheckBox对象加入到集合中
ckbs.add((CheckBox) findViewById(R.id.checkBox1));
ckbs.add((CheckBox) findViewById(R.id.checkBox2));
ckbs.add((CheckBox) findViewById(R.id.checkBox3));
// 设置第一个是被选中状态
ckbs.get(0).setChecked(true);
// 遍历
for (CheckBox ckb : ckbs) {
// 注册事件
ckb.setOnCheckedChangeListener(this);
}
}
public void clickView(View v) {
// 遍历
for (CheckBox ckb : ckbs) {
if (ckb.isChecked()) {
System.out.println(ckb.getText());
}
}
}
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
CheckBox ckb = (CheckBox) buttonView;
if (isChecked) {
Toast.makeText(this, ckb.getText(), 1).show();
}
}
}