CheckBox也可以進行單選

直接上代碼

1.配置文件

<LinearLayout
             android:orientation="vertical"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_marginTop="20dp"
             android:layout_marginLeft="10dp"
             android:contentDescription="problem">

             <CheckBox
                 android:id="@+id/checkBox1"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:button="@drawable/radio"
                 android:text="@string/problem1"
                 android:paddingLeft="14dp"
                 android:textSize="15sp"/>
             <CheckBox
                 android:id="@+id/checkBox2"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:button="@drawable/radio"
                 android:text="@string/problem2"
                 android:layout_marginTop="40dp"
                 android:paddingLeft="14dp"
                 android:textSize="15sp"/>
             <CheckBox
                 android:id="@+id/checkBox3"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:button="@drawable/radio"
                 android:text="@string/problem3"
                 android:layout_marginTop="40dp"
                 android:paddingLeft="14dp"
                 android:textSize="15sp"/>

         </LinearLayout>

2.java文件

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

        cb_one = (CheckBox)findViewById(R.id.checkBox1);
        cb_two = (CheckBox)findViewById(R.id.checkBox2);
        cb_three = (CheckBox)findViewById(R.id.checkBox3);
        
        cb_one.setOnCheckedChangeListener(listener);
        cb_two.setOnCheckedChangeListener(listener);
        cb_three.setOnCheckedChangeListener(listener);

    }

    //將checkbox設置成單選的響應事件
    private CompoundButton.OnCheckedChangeListener listener = new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            //checkbox1被選中
            if (buttonView.getId() == R.id.checkBox1){
                if (isChecked){
                    cb_two.setChecked(false);
                    cb_three.setChecked(false);
                }
            }
            //checkbox2被選中
            else if(buttonView.getId() == R.id.checkBox2){
                if (isChecked){
                    cb_one.setChecked(false);
                    cb_three.setChecked(false);
                }
            }
            //checkbox3被選中
            else if (buttonView.getId() == R.id.checkBox3){
                if (isChecked){
                    cb_one.setChecked(false);
                    cb_two.setChecked(false);
                }
            }
        }
    };

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章