android CheckBox的运用

时间:2023-11-22 17:19:14

CheckBox定义一个同意协议的按钮,只要同意button才可以点击

XML代码

  1. <CheckBox
  2. android:id="@+id/checkbox1"
  3. android:layout_width="wrap_content"
  4. android:layout_height="wrap_content"
  5. android:layout_above="@+id/button1"
  6. android:layout_alignLeft="@+id/linearLayout1"
  7. android:text="牛仔"
  8. />

在onClick里面设置只要当checkbox.isChecked()为true,也就是勾选上时,button1.setEnabled(true);才可以点击
java代码

  1. checkbox = (CheckBox) findViewById(R.id.checkbox1);
  2. checkbox.setChecked(false);
  3. button1.setEnabled(false);
  1. checkbox.setOnClickListener(new CheckBox.OnClickListener(){
  2. <span style="white-space:pre">  </span>@Override
  3. public void onClick(View v) {
  4. // TODO Auto-generated method stub
  5. if(checkbox.isChecked()){
  6. button1.setEnabled(true);
  7. }else{
  8. <span style="white-space:pre">  </span>button1.setEnabled(false);
  9. }
  10. <span style="white-space:pre">  </span>}
  11. });

定义多个CheckBox来控制同一个控件

XML代码

  1. <CheckBox
  2. android:id="@+id/checkbox1"
  3. android:layout_width="wrap_content"
  4. android:layout_height="wrap_content"
  5. android:layout_above="@+id/button1"
  6. android:layout_alignLeft="@+id/linearLayout1"
  7. android:text="牛仔"
  8. />
  9. <CheckBox
  10. android:id="@+id/checkbox2"
  11. android:layout_width="wrap_content"
  12. android:layout_height="wrap_content"
  13. android:layout_alignBaseline="@+id/checkbox3"
  14. android:layout_alignBottom="@+id/checkbox3"
  15. android:layout_marginLeft="27dp"
  16. android:layout_toRightOf="@+id/checkbox3"
  17. android:text="面包" />
  18. <CheckBox
  19. android:id="@+id/checkbox3"
  20. android:layout_width="wrap_content"
  21. android:layout_height="wrap_content"
  22. android:layout_alignBaseline="@+id/checkbox1"
  23. android:layout_alignBottom="@+id/checkbox1"
  24. android:layout_toRightOf="@+id/button1"
  25. android:text="黄油" />

Java代码

  1. checkbox = (CheckBox) findViewById(R.id.checkbox1);
  2. checkbox2 = (CheckBox) findViewById(R.id.checkbox2);
  3. checkbox3 = (CheckBox) findViewById(R.id.checkbox3);
  4. //通过OnCheckedChangeListener来设置来个CheckBox对象
  5. checkbox.setOnCheckedChangeListener(checkboxlister);
  6. checkbox2.setOnCheckedChangeListener(checkboxlister);
  7. checkbox3.setOnCheckedChangeListener(checkboxlister);
  8. }
  9. private CheckBox.OnCheckedChangeListener checkboxlister = new CheckBox.OnCheckedChangeListener(){
  10. @Override
  11. public void onCheckedChanged(CompoundButton buttonView,
  12. boolean isChecked) {
  13. // TODO Auto-generated method stub
  14. String str0 = "所选:";
  15. String str1 = "牛仔";
  16. String str2 = "面包";
  17. String str3 = "黄油";
  18. //在这里进行你需要的逻辑
  19. if(checkbox.isChecked()){
  20. tview.setText(str0+str1);
  21. }
  22. if(checkbox2.isChecked()){
  23. tview.setText(str0+str2);
  24. }
  25. if(checkbox3.isChecked()){
  26. tview.setText(str0+str3);
  27. }
  28. }
  29. };

也可以使用OnTouchListener(触摸事件)来触发

    1. checkbox.setOnTouchListener(checktouch);
    2. checkbox2.setOnTouchListener(checktouch);
    3. checkbox3.setOnTouchListener(checktouch);
    4. }
    5. private CheckBox.OnTouchListener checktouch = new CheckBox.OnTouchListener(){
    6. @Override
    7. public boolean onTouch(View arg0, MotionEvent arg1) {
    8. // TODO Auto-generated method stub
    9. if(checkbox.isChecked()){
    10. tview.setText("mimi");
    11. }else{
    12. tview.setText("pipi");
    13. }
    14. return false;
    15. }
    16. };