当前位置: 首页 > 知识库问答 >
问题:

我想使用textwatcher执行实时计算,但它不是计算

赫连宏伯
2023-03-14
    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文本转换器

@重写公共无效后文本更改(可编辑){

        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 textchanger@Override public void afterTextChanged(可编辑的s){

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

    }
});

不计算编辑文本的值

即使尝试在et1和et2中使用文本观察程序执行计算,应用程序也会崩溃

共有2个答案

方嘉志
2023-03-14

在每个text Watcher(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));
    }

}
傅长恨
2023-03-14

将文本监视程序添加到EditText1和EditText2。执行计算afterTextChanged,并将该值设置为第三个编辑文本。注意:不要将textWatcher添加到结果编辑文本中。

 类似资料:
  • 我可以完成这段代码,但是我想在不重复方法的情况下完成,怎么能用一个方法完成呢? 我可以将元素更改为(+-*/)吗?(那部分是我有问题)

  • 可能的重复: 如何测量函数的运行时间? 我有一种I/O计时方法,它将数据从一个位置复制到另一个位置。计算执行时间的最佳和最真实的方法是什么<代码>线程<代码>定时器<代码>秒表?还有其他解决方案吗?我想要最准确的,尽可能简短的。

  • 有时候,能够知道一个计算执行消耗的时间是非常有意义的,尤其是在对比和基准测试中。最简单的一个办法就是在计算开始之前设置一个起始时候,再由计算结束时的结束时间,最后取出它们的差值,就是这个计算所消耗的时间。想要实现这样的做法,可以使用 time 包中的 Now() 和 Sub 函数: start := time.Now() longCalculation() end := time.Now() de

  • 问题内容: 我想尝试从本示例开始的不同使用方式: 这里是一个列表,当生成4个进程时,该列表将被复制4次。为了避免这种情况,文档页面提供了使用队列,共享数组或使用创建的代理对象的信息。对于最后一个,我更改了的定义: 结果看起来仍然正确,但是执行时间却大大增加,以至于我做错了什么: 文档确实说这种方法比共享数组要慢,但这感觉很不对。我也不确定如何配置此文件,以获取有关正在发生的事情的更多信息。我想念什

  • 我建立了一个tic_tac_toe(板)游戏对AI电脑播放器在java,我写了一个MiniMax算法的电脑 下面是我写的MiniMax算法: eval函数是用来计算网格的,我只是把它做成一个例子,下面是函数: 有人知道为什么会这样吗? 函数将获取此棋盘,并通过查找棋盘中的第一个空字符并放置“X”或“O”来尝试查找此棋盘的所有可能移动,这取决于玩家的回合,并返回新棋盘的列表,代码如下。

  • 我想先除,然后乘,但不知道怎么做这两个想法? 它在工作,但它只是分裂的时刻。