根据答案显示 TextView 文本

show TextView text depending on an answer

我对这类事情很陌生,正在努力自学,但被困在这里。我正在编写一个应用程序来计算所需的电池大小。我已经完成的计算器方面的工作并且它正在工作但是我想添加一个功能,当显示答案时,它会告诉您所需电池所需的部件号。我曾尝试自己解决这个问题,但惨遭失败,所以我希望有人能为我指明正确的方向

电池计算器的答案显示在结果中。我想要的是 battreq 显示正确尺寸电池所需的部件号。例如,如果计算器显示需要 2.43Ah 电池,battreq 将显示 "A 3.2ah battery is required",因为这是下一个可用的尺寸。

ahresult = (TextView) findViewById(R.id.ahresult);

        battreq.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                Integer.parseInt(ahresult.getText().toString());
                if (ahresult.equals(>= "0.00" && <=  "1.20")){
                    battreq.setText("A 1.2Ah battery is required");
                }
                else if (ahresult.equals (>= "1.21 && <= 2.10")){
                    battreq.setText("A 2.1Ah battery is required");
                }
                else if (ahresult.equals (>= "2.11 && <= 3.20")){
                    battreq.setText("A 3.2Ah battery is required");
                }
              // so on and so on with different battery sizes
            }

这是我尝试的(糟糕的)努力,但我的表达开始不合法。

有人可以指导我正确的方向吗?

编辑:尽管这里有帮助,但似乎仍然存在问题。下面是更新后的代码。我这里有什么问题吗?

ahresult.addTextChangedListener(new TextWatcher() {

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

                double result = Double.parseDouble(ahresult.getText().toString());

                if (ahresult.equals(result >= 0.001 && result <=1.200 )) {
                    battreq.setText("1.2Ah req");

                }
                else if (ahresult.equals(result >= 1.201 && result <=2.100 )) {
                    battreq.setText("2.1Ah req");
                }
            }
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void afterTextChanged(Editable s) {

            }
        });

你需要改变这个

battreq.addTextChangedListener(new ...

有了这个

ahresult.addTextChangedListener(new ...

您需要听取 ahresult 的值并更换所需的电池。

在 "onTextChanged" 中,"CharSequence s" 参数是 ahresult 的文本

首先,您应该将 addTextChangedListener 添加到 ahresult 而不是 battreq

其次,您必须将更改后的文本 s 解析为 Double 然后在您想要的范围内进行比较:

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

    Double result = Double.parseDouble(s.toString());

   if (ahresult.equals(result >= 0.00 &&  result <=  1.20)){
       battreq.setText("A 1.2Ah battery is required");
   }
   else if (ahresult.equals (result>= 1.21 && result <= 2.10)){
       battreq.setText("A 2.1Ah battery is required");
   }
   else if (ahresult.equals (result>= 2.11 && result <= 3.20)){
       battreq.setText("A 3.2Ah battery is required");
   }
   // so on and so on with different battery sizes
}