当前位置: 代码迷 >> java >> 如何忽略空的 EditText?
  详细解决方案

如何忽略空的 EditText?

热度:40   发布时间:2023-07-25 19:31:20.0

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

Edittext.SetText("0");

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

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

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

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

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

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

使用除法和乘法将您的计数从 0 更改为 1。如果 Java 语法有任何错误,请见谅。

我写了一些你可以使用的实用方法。 您需要删除当前使用的默认值“0”。 这样,如果EditText没有该EditText Integer数值计算将被跳过。

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

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的容器

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

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

这表示检查编辑文本是否为空,返回 0 或返回整数值。

在任何需要的地方使用 created 方法。

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

或者你可以像Integer.interger ("0" + editText.getText().toString()); }一样让你的编辑文本仍然是 vale + 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();

  相关解决方案