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