【问题标题】:I want to perform realtime calculation using textwatcher but it is not calculating我想使用 textwatcher 执行实时计算,但它没有计算
【发布时间】:2019-03-31 15:31:52
【问题描述】:
    I'm trying to perform  a real time calculation using two edit text and get the result in third edit text it is not calculating   

e1 文本转换器

@覆盖 public void afterTextChanged(Editable s) {

        double e1=Double.parseDouble(et1.getText().toString().trim());
        double e2=Double.parseDouble(et2.getText().toString().trim());
        double e3=e1+e2;

        et3.setText(String.valueOf(e3));

    }
});

et2 文本转换器

  @Override
    public void afterTextChanged(Editable s) {
        double e1=Double.parseDouble(et1.getText().toString().trim());
       double e2=Double.parseDouble(et2.getText().toString().trim());
        double e3=e1+e2;
        et3.setText(String.valueOf(e3));

    }
});

et3 文本转换器 @覆盖 public void afterTextChanged(Editable s) {

        double ans=(Double.parseDouble(et1.getText().toString().trim()))+(Double.parseDouble(et2.getText().toString().trim()));
        et3.setText(String.valueOf(ans));

    }
});

编辑文本的值不计算

甚至尝试在 et1 和 et2 中使用文本观察器执行计算,应用程序崩溃

【问题讨论】:

  • 这没有意义,在et3的textWatcher中,你改变了et3的文字?这将导致无休止地调用afterTextChaged...
  • 如何计算
  • 编辑文本代表什么?我想et1和et2是数字输入,et3代表什么?
  • et3 是计算结果
  • 以上是新更新的代码

标签: java android


【解决方案1】:

将文本观察器添加到 EditText1 和 EditText2。执行计算afterTextChanged 并将值设置为第三个EditText。 注意:不要将 textWatcher 添加到结果 EditText 中。

【讨论】:

  • 或者添加一个触发计算的简单按钮...没有textWatchers
  • 我想做实时兄弟
  • 实时需要使用textWatcher或者输入过滤器。对于您的情况, textWatcher 就足够了。
  • @SanthoshKumarSrikanthaMurali 见上面 et3 的代码,你说要在 et1 和 et2 中执行计算,它再次崩溃
  • 崩溃信息是什么?你可以发布代码吗? @仙境传说
【解决方案2】:

在每个 textWatcher(et1 和 et2)中,您需要检查其他编辑文本的文本是否不为空。

最好在两个观察者中检查两者:

@Override
public void afterTextChanged(Editable s) {
    if (et1.getText() != null && et2.getText() != null) {
        double e1=Double.parseDouble(et1.getText().toString().trim());
        double e2=Double.parseDouble(et2.getText().toString().trim());
        double e3=e1+e2;
        et3.setText(String.valueOf(e3));
    }

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-29
    • 2018-03-20
    • 2020-06-06
    • 2012-04-19
    • 2022-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多