如何忽略空的EditText?

时间:2019-03-03 14:35:15

标签: java android exception android-edittext calculator

我有 6个编辑文本,如果用户输入所有这些文本都会进行一些计算,那么我想忽略“空编辑文本”,这样我的应用程序就不会在没有输入的情况下崩溃。方式,但是将每种可能性都用于编辑文本是很痛苦且耗时的。 对于加法,我发现很简单,为什么只检查“编辑文本”是否为空,放置值为0,

Edittext.SetText("0");

因此,如果仅给出3个类似ed1=1, ed=1, ed3=1的输入,我就可以执行加法运算

edTotal = 1 + 1 + 1 + 0 + 0 + 0 = 3;

我的问题是其他运算,如果除法或乘法不能设置为零,则会改变结果。

很抱歉仍在学习编码。感谢您的帮助。

4 个答案:

答案 0 :(得分:0)

我想您应该获取每个editText并检查其是否为空->

int count = 0;
   if(!editTextFirst.getText.toString().equals("")){
     count += Integer.parse(editTextFirst.getText.toString());
   }
   else if(// next editText){
   }

通过除法和乘法将计数从0更改为1。很抱歉,如果Java语法有任何错误。

答案 1 :(得分:0)

我写了一些可以使用的实用程序方法。您将需要删除当前使用的默认值“ 0”。如果EditText没有Integer的{​​{1}}值计算,将以这种方式跳过。

根据您的需要修改这些功能:)

EditText

}

修改 添加了有关如何使用的示例方法。 或者,您可以简单地遍历包含private void addValueFromEditText(EditText yourEditText) { try { edTotal += Integer.valueOf(yourEditText.getText().toString()); } catch (NumberFormatException exception) { Toast.makeText(context, yourEditText + " has non Integer value", Toast.LENGTH_SHORT).show(); } } private void multiplyByValueFromEditText(EditText yourEditText) { try { edTotal *= Integer.valueOf(yourEditText.getText().toString()); } catch (NumberFormatException exception) { Toast.makeText(context, yourEditText + " has non Integer value", Toast.LENGTH_SHORT).show(); } } private void divideByValueFromEditText(EditText yourEditText) { try { edTotal /= Integer.valueOf(yourEditText.getText().toString()); } catch (NumberFormatException exception) { Toast.makeText(context, yourEditText + " has non Integer value", Toast.LENGTH_SHORT).show(); } private void sumAllEditTexts() { addValueFromEditText(ed1); addValueFromEditText(ed2); addValueFromEditText(ed3); addValueFromEditText(ed4); addValueFromEditText(ed5); addValueFromEditText(ed6); }

的容器

答案 2 :(得分:0)

您可以创建一个返回int值的方法。

 private int extractInt(EditText editText) {
        return editText.getText().toString().isEmpty() ? 0 : Integer.parseInt(editText.getText().toString());
    }

哪个说检查编辑文本是否为空,返回0或返回整数值。

在需要的地方使用创建的方法。

int Total = extractInt(youreditText1) + extractInt(youreditText2) + extractInt(youreditText3) + extractInt(youreditText4);

答案 3 :(得分:0)

或者您也可以使编辑文本仍为淡淡的+ 0,例如Integer.interger ("0" + editText.getText().toString()); }

或输入Toast.makeText(Profesional_5x1.this, "No valid values, et least please input two result measurements MUAC, Knee Height, and age", Toast.LENGTH_SHORT).show();