【问题标题】:How Ignore Empty EditText?如何忽略空的 EditText?
【发布时间】:2019-03-03 14:35:15
【问题描述】:

我有 6 编辑文本,如果用户输入所有这些都会进行一些计算,我想忽略 Empty Edit Text 以便我的应用在没有输入时不会崩溃,我发现方式,但它是痛苦和耗时的是把每一种可能性的编辑文本。 对于加法,我觉得很简单,为什么只检查编辑文本是否为空值 0,

Edittext.SetText("0");

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

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

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

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

【问题讨论】:

  • 哦,好吧,抱歉。
  • 那么如果值为0或null,你想绕过该进程还是终止它?
  • 我有一个方程,如果用户只输入 D 和 R 我想要的任何输入,例如 if total = (D*8) +(R*5) +(Y*6)忽略 Y 是空的。我希望它清楚

标签: java android exception android-edittext calculator


【解决方案1】:

我猜你应该拿每个 editText 并检查它是否为空 ->

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

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

【讨论】:

  • 我认为这样我需要写出每种可能性,然后为每个“if 语句”将方程式放在 else 上。如果 editfirst 为空,否则 total = ed2+ed3+ed4....+ 以此类推,重复每种可能性。
【解决方案2】:

我写了一些你可以使用的实用方法。您需要删除当前使用的默认值“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 更好。
【解决方案3】:

您可以创建一个返回 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);

【讨论】:

  • 感谢重播,如果为空会返回 0?因为乘法中的零 = 0 它仅适用于加法。
【解决方案4】:

或者您可以将编辑文本设为 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();

【讨论】:

    猜你喜欢
    • 2022-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多