缺少Android文本监视程序计算
我有三个EditText元素。我想根据存储在第三个编辑文本字段中的前两个EditText值进行计算 但计算总是出错。每当我从secound edit文本中清除键入的值时,计算将无法正常工作缺少Android文本监视程序计算,android,Android,我有三个EditText元素。我想根据存储在第三个编辑文本字段中的前两个EditText值进行计算 但计算总是出错。每当我从secound edit文本中清除键入的值时,计算将无法正常工作 public void onTextChanged(CharSequence s, int a, int b, int c) { try{ a=Integer.parseInt(totamt.getText().toString().trim());
public void onTextChanged(CharSequence s, int a, int b, int c) {
try{
a=Integer.parseInt(totamt.getText().toString().trim());
b=Integer.parseInt(expenses.getText().toString().trim());
c=Integer.parseInt(handover_amt.getText().toString().trim());
int d = Integer.parseInt(String.valueOf(a)) - Integer.parseInt(String.valueOf(b)) - Integer.parseInt(String.valueOf(c));
balance_amt.setText(String.valueOf(d));
int myOB = Integer.parseInt(et_overall_balance.getText().toString().trim());
int OverallBalance = Integer.parseInt(String.valueOf(myOB)) - Integer.parseInt(handover_amt.getText().toString().trim());
et_overall_balance.setText(String.valueOf(OverallBalance));
System.out.println(OverallBalance);
}catch(NumberFormatException numberEx)
{
System.out.println(numberEx);
}
}
使用下面的代码
edittext2.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if (edittext1.getText().toString().trim() != null && !edittext1.getText().toString().trim().equalsIgnoreCase("")) {
if (edittext2.getText().toString().trim() != null && !edittext2.getText().toString().trim().equalsIgnoreCase("")) {
edittext3.setText("" + (Double.parseDouble(edittext1.getText().toString().trim()) - Double.parseDouble(edittext2.getText().toString().trim())));
} else {
Toast.makeText(activity, "Please enter value in edittext 2", Toast.LENGTH_LONG).show();
}
} else {
Toast.makeText(activity, "Please enter value in edittext 1", Toast.LENGTH_LONG).show();
}
}
});
要在第三个edittext中显示什么?edittext3=edittext1-edittext2。用户将在edittext2中输入值。我尝试了您的代码,但遇到了相同的问题。例如,
EDITTEXT1=5000
EDITTEXT2=5
(假设我只输入5)<代码>编辑文本3=4995代码>这一切还是好的。但是我在EDITTEXT2=50
中又输入了一个值(5在那里是多余的,所以我只添加了0)。现在结果是EDITTEXT3=4945
。但我们需要4950的答案。问题是50将从旧的4995中减去,而不是从5000中减去。将上述侦听器添加到edittext1和edittext2,而不是edittext3上。