如何忽略空EditText?

问题描述 投票:0回答:3

我有6个编辑文本,如果用户输入所有这些将进行一些计算,我想忽略空编辑文本,以便我的应用程序不会崩溃,如果没有输入,我找到方法,但它是痛苦和耗时是放编辑文本的每种可能性。对于Addition我发现简单的原因只是检查Edit Text是否为Empty put 0,

Edittext.SetText("0");

所以我可以执行加法,如果仅举例如ed1=1, ed=1, ed3=1给出的3个输入

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

我的问题是与其他操作有关,如果除法或乘法我们不能将它设置为零,它将改变结果。

抱歉还在学习编码。谢谢你的帮助。

java android exception android-edittext calculator
3个回答
0
投票

我写了一些你可以使用的实用程序方法。您需要删除当前使用的默认值“0”。这种情况下,如果EditText没有Integer值计算的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);
}

}

编辑添加了如何使用的示例方法。或者你可以简单地遍历包含那些EditTextView的容器


0
投票

我想你应该采取每个editText并检查这是否为空 - >

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

使用除法和乘法将计数从0更改为1.抱歉,如果java语法中有任何错误。


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);
© www.soinside.com 2019 - 2024. All rights reserved.