首页 > 解决方案 > toggle.setchecked 在 onTextChanged 事件中

问题描述

当在文本框中输入数字时,我正在尝试使用切换按钮来显示数字检查的状态。我已经用 TextView 进行了设置,效果很好,但我想以图形方式替换它。以下内容不会引发错误,但状态不会随着 OnChanged 事件中的 .SetChanged 事件而改变:

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

    final ToggleButton togShortCircuit = (ToggleButton) findViewById(R.id.togShortCircuit);
    togShortCircuit.setClickable(false);

    final EditText txtOCVListen = (EditText) findViewById(R.id.txtOCV);
    txtOCVListen.addTextChangedListener(new TextWatcher() {

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            txtOCVListen.setFilters(new InputFilter[]{new CustomRangeInputFilter(0f, 16.0f)});

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {

            if(txtOCVListen.getText().toString().equals(null) || txtOCVListen.getText().toString().equals("")){
                fltOCV = 0;
            } else {
                fltOCV = Float.parseFloat(txtOCVListen.getText().toString());
            }

            //Short Circuit
            if (fltOCV < 10.6 && fltULV > 0 && fltULV <= 8.5) {
                TextView lblShortCircuitStatus = (TextView) findViewById(R.id.lblShortCircuitStatus);
                lblShortCircuitStatus.setText("True");
                lblShortCircuitStatus.setTextColor(0xFFD51817); //Red
                togShortCircuit.setChecked(true);

            } else {
                TextView lblShortCircuitStatus = (TextView) findViewById(R.id.lblShortCircuitStatus);
                lblShortCircuitStatus.setText("False");
                lblShortCircuitStatus.setTextColor(0xFF808080); //Grey
                togShortCircuit.setChecked(false);
            }

似乎无法弄清楚如何声明 togShortCircuit 以使其被事件识别。使用 Android Studio 3.12 并针对 Android 7.0 进行开发。

标签: javaandroid

解决方案


推荐阅读