AfterTextChanged和OnFocusChangedListener

时间:2014-11-03 19:47:32

标签: android android-edittext textwatcher onfocus

我在多个editText框上有一个textwatcher,它接受计算并将结果输出到Textview中。但是,我还需要一种方法来使用DecimalFormat,以便在用户将其键入editText之后,它将其格式化为:“$ ###,###,###。00”。我已经考虑过使用OnFocusChangedListener,但这似乎仍会触发afterTextChanged事件。我怎么做才能让我最终得到Stack Overflow?

textwatcher调用这样的方法:

TextWatcher Watch = new TextWatcher() {

    @Override
    public void afterTextChanged(Editable s) {
        calc();

    }
private void calc() {
Editable eValue1 = new.getText(), eValue2 = ti.getText(), eValue3 = acc.getText();
Double value1 = 0.0, value2 = 0.0, value3 = 0.0, result = 0.0;

if (eValue1 != null)
    value1 = toDouble(eValue1);
if (eValue2 != null)
    value2 = toDouble(eValue2);
if (eValue3 != null)
    value3 = toDouble(eValue3);
if (value1 != null && value2 != null && value3 != null)
    result = value1 - (value2 + value3);
    td.setText(formatCur(result));

}
  private String formatCur(Double result) {
    DecimalFormat df = new DecimalFormat("$###,###,###.00");
    String format = df.format(result);
    return format;
}

1 个答案:

答案 0 :(得分:1)

您是否尝试删除侦听器,设置文本,然后再次添加侦听器?