1. 程式人生 > >Android中CheckBox複選框操作

Android中CheckBox複選框操作

public class MainActivity extends Activity {

	// 宣告多選列表物件
	private CheckBox cbx1, cbx2, cbx3, cbx4;

	private List<CheckBox> checkBoxs = new ArrayList<CheckBox>();

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		cbx1 = (CheckBox) findViewById(R.id.checkBox1);
		cbx2 = (CheckBox) findViewById(R.id.checkBox2);
		cbx3 = (CheckBox) findViewById(R.id.checkBox3);
		cbx4 = (CheckBox) findViewById(R.id.checkBox4);

		// 預設選項
		cbx1.setChecked(true);
		cbx3.setChecked(true);

		
		cbx1.setOnCheckedChangeListener(listener);
		cbx2.setOnCheckedChangeListener(listener);
		cbx3.setOnCheckedChangeListener(listener);
		cbx4.setOnCheckedChangeListener(listener);

		// 新增到集合中
		checkBoxs.add(cbx1);
		checkBoxs.add(cbx2);
		checkBoxs.add(cbx3);
		checkBoxs.add(cbx4);
	}

	@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) {
			
			CheckBox box = (CheckBox) buttonView;

			Toast.makeText(getApplicationContext(),
					"獲取的值:" + isChecked + "xxxxx" + box.getText(),
					Toast.LENGTH_LONG).show();

		}
	};

}