【问题标题】:Android Development: Checkbox setChecked not workingAndroid 开发:复选框 setChecked 不起作用
【发布时间】:2018-01-30 18:41:42
【问题描述】:

在我的 xml 中:

<CheckBox android:id="@+id/checkboxUpdateLessonPlanAll"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/chkLessonPlanAll"
            android:onClick="onCheckboxClicked"/>

在我的 java 中:

public void onCheckboxClicked(View view) {
    //CheckBox box = (CheckBox) view;
    CheckBox box = (CheckBox) findViewById(R.id.checkboxUpdateLessonPlanAll);
    box.setChecked(!box.isChecked());
    Log.v("qwerty", "checkbox clicked " + box.isChecked() + "!!");
}

我可以在 LogCat 中看到我的日志消息,当我单击复选框时它显示为 false,但它的状态没有改变。它保持未选中状态。

【问题讨论】:

    标签: android checkbox


    【解决方案1】:

    为什么你会尝试用类似默认行为的东西覆盖默认行为?复选框会在每次点击时自动切换。

    如果您想对此做出反应,请使用OnCheckedChangeListener

    【讨论】:

    • 确实如此...我只是从教程中复制了代码,它附带了 onClick =.= 所以我就照做了。但是,是的,它现在可以检查,谢谢。但除此之外,你知道为什么它没有按照问题的方式工作吗?
    • 这是因为您切换了两次。一次在您的代码中,一次在复选框代码中。
    • 我犯了和op一样的错误。现在我知道为什么代码不起作用了。哈哈
    【解决方案2】:

    要使CheckBox 选中或取消选中,您也可以使用like

    box.setChecked(true);
    
    box.setChecked(false);
    

    并获得CheckBox的状态

    if(box.isChecked()) {
    
      //do something here...
    
    } else {
    
      //do something here...
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-02
      • 1970-01-01
      • 2018-05-04
      • 2012-04-21
      • 1970-01-01
      • 2016-11-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多