我有一个带有两个EditText Box和一个按钮的简单屏幕。我希望用户能够在框中输入各种整数,并且程序将根据在框中输入的特定数字执行不同的操作。我试图让他们一次只输入一个数字,但是代码似乎不会执行,除非两个盒子中都有东西。而且我在执行if语句之前先检查各个框中的空值,以确定要执行的代码段。
public void button(View view) {
double x, y;
EditText freq1 = findViewById(R.id.freq1);
EditText freq2 = findViewById(R.id.freq2);
TextView str1 = findViewById(R.id.freqanswer);
TextView str2 = findViewById(R.id.injVolt);
TextView error1 = findViewById(R.id.error1);
String strf1, strf2;
strf1 = freq1.getText().toString();
strf2 = freq2.getText().toString();
try {
f1 = Double.parseDouble(strf1);
f2 = Double.parseDouble(strf2);
if ((f1 >= 225) & (f1 <= 312) & (strf1.isEmpty())) {
x = f1 + 20.6;
y = x / 4;
str1.setText(String.format("%.3f", y));
}
}
catch (Exception e){
error1.setText("splat");
}
finally {
InputMethodManager input = (InputMethodManager)
getSystemService(Context.INPUT_METHOD_SERVICE);
input.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
}
为了简洁起见,我只包括了1个公式,但是我要放置大约6个if语句,检查此按钮上的数字范围和null,我只需要它在一个框为空的情况下运行即可。我知道公式可以通过处理各种输出来工作,但不会与strf1.isEmpty()一起运行。要在公式的第二个框中输入某些内容。 不胜感激
答案 0 :(得分:0)
我认为您应该在分配前进行检查:
if(strf1.isEmpty()){strf1="0";} //if assuming zero does not change the formula's output
if(strf2.isEmpty()){strf2="0";}
f1 = Double.parseDouble(strf1);
f2 = Double.parseDouble(strf2);
这样,您可以确保使用默认值。