根据答案显示文本视图文本



我对这种事情非常新鲜,正在尝试自学,但已经陷入困境。我正在编写一个应用程序,该应用程序将计算所需的尺寸电池。我所做的事情的计算器侧,但是我想添加一个功能,当显示答案时,它将告诉您所需的电池所需的零件号。我试图自己解决这个问题,并惨败,所以我希望有人能够将我指向正确的方向

电池计算器的答案在Ahresult中显示。我想要的是Battreq显示正确尺寸电池所需的零件号。因此,例如,如果计算器显示需要2.43AH电池,则Battreq将显示"需要3.2AH电池",因为这是下一个可用的尺寸。

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) {
            }
        });

首先,您应该将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
}

您需要更改此

battreq.addtextchangedlistener(new ...

使用此

ahresult.addtextchangedlistener(new ...

您需要收听Ahresult的价值并更改所需的电池。

在" ontextchanged"中," charsequence s" param是Ahresult的文本

相关内容

  • 没有找到相关文章

最新更新