Can't set OnCheckedChangeListener to a Checkbox

前端 未结 3 1195
傲寒
傲寒 2021-01-02 01:01

I am trying to set a OnCheckedChangeListener to a CheckBox but my application exits in the run time. I also tried to set listeners for my Tex

3条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2021-01-02 01:16

    public class MainActivity extends AppCompatActivity implements CompoundButton.OnCheckedChangeListener {
    List mList = new ArrayList<>();
    CheckBox android, java, python, php, unity3D;
    Button submitButton;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        android = (CheckBox) findViewById(R.id.androidCheckBox);
        android.setOnCheckedChangeListener(this);
        java = (CheckBox) findViewById(R.id.javaCheckBox);
        java.setOnCheckedChangeListener(this);
        python = (CheckBox) findViewById(R.id.pythonCheckBox);
        python.setOnCheckedChangeListener(this);
        php = (CheckBox) findViewById(R.id.phpCheckBox);
        php.setOnCheckedChangeListener(this);
        unity3D = (CheckBox) findViewById(R.id.unityCheckBox);
        unity3D.setOnCheckedChangeListener(this);
    
        submitButton = (Button) findViewById(R.id.submitButton);
        submitButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Log.e("ArrayList Values*******",mList.toString());
            }
        });
    
    }
    
    @Override
    public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
        switch (compoundButton.getId()) {
            case R.id.androidCheckBox:
                if (android.isChecked()) {
                    mList.add(String.valueOf(android.getText()));
                    Log.e("Android*******",mList.toString());
                }
                else {
                        mList.remove(android.getText());
                }
                break;
    
            case R.id.javaCheckBox:
                if (java.isChecked()) {
                    mList.add(String.valueOf(java.getText()));
                    Log.e("Java*******",mList.toString());
                }
                else {
                    mList.remove(java.getText());
                }
                break;
    
            case R.id.phpCheckBox:
                if (php.isChecked()) {
                    mList.add(String.valueOf(php.getText()));
                    Log.e("PHP*******",mList.toString());
                }
                else {
                    mList.remove(php.getText());
                }
                break;
    
            case R.id.pythonCheckBox:
                if (python.isChecked()){
                    mList.add(String.valueOf(python.getText()));
                    Log.e("Python*******",mList.toString());
                }
                else {
                    mList.remove(python.getText());
                }
                break;
    
            case R.id.unityCheckBox:
                if (unity3D.isChecked()){
                    mList.add(String.valueOf(unity3D.getText()));
                    Log.e("Unity*******",mList.toString());
                }
                else {
                    mList.remove(unity3D.getText());
                }
                break;
          }
      }
    }
    

提交回复
热议问题