我正试图减少一笔固定金额 TextView
使用 aftetTextChanged
. 为了实现这一点,我在framgnet中执行以下操作
textwatcher代码
editTextDiscount.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
Double damageCost = 0d;
String decDE = txtDamageEstimate.getText().toString().trim();
decDE = decDE.replace("£", "");
Double decDeResults = Double.valueOf((String) (decDE));
if (!TextUtils.isEmpty(editTextDiscount.getText())) {
damageCost = editTextDiscount.getCleanDoubleValue();
}
txtDiscount.setText(" "+nf.format(-damageCost));
txtDamageEstimate.setText(nf.format(decDeResults-damageCost));
}
});
这是可行的,但是它减少了输入量,当我退格输入时,它不会重置为其原始量,例如,如果它是20.00,我输入00.01,它将显示19.97,如果我将其删除为0.01,它将保持19.97
1条答案
按热度按时间kognpnkq1#
textwatcher不应该以这种方式使用,它是作为观察者而不是交互者设计的。
我认为编辑完成后,您会尝试做一些事情。您应该改用focuslistener。