import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.Toast; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity implements CompoundButton.OnCheckedChangeListener, View.OnClickListener { private CheckBox one, two, three, forth; //存放CheckBox的ID的数组 private int[] ids = {R.id.ck_one, R.id.ck_two, R.id.ck_three, R.id.ck_forth}; private List<String> checkBoxData;//存放CheckBox的内容 private List<Boolean> checkBoxStates;//存放CheckBox的状态 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //checkBox是多选框 checkBoxData = new ArrayList<>(); checkBoxStates = new ArrayList<>(); for (int i = 0; i < ids.length; i++) { CheckBox checkBox = (CheckBox) findViewById(ids[i]); checkBox.setOnCheckedChangeListener(this); checkBoxData.add(checkBox.getText().toString()); checkBoxStates.add(checkBox.isChecked()); } findViewById(R.id.btn_main).setOnClickListener(this); } /** * isChecked 参数 是用来记录CheckBox改变之后的状态的 */ @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { switch (buttonView.getId()) { case R.id.ck_one: checkBoxStates.set(0, isChecked); break; case R.id.ck_two: checkBoxStates.set(1, isChecked); break; case R.id.ck_three: checkBoxStates.set(2, isChecked); break; case R.id.ck_forth: checkBoxStates.set(3, isChecked); break; } } @Override public void onClick(View v) { String result = ""; for (int i = 0; i < checkBoxStates.size(); i++) { if (checkBoxStates.get(i)) { result += checkBoxData.get(i) + " "; } } Toast.makeText(MainActivity.this, result, Toast.LENGTH_SHORT).show(); }
}