我试图在EditText中显示方程式结果。
它可以正常工作,直到我清除文本字段中的值,即应用程序关闭时的值
mDrq = (EditText) findViewById(R.id.drq);
mEDitTxt = (EditText) findViewById(R.id.EditText01);
mDrq.addTextChangedListener(new TextWatcher(){
@Override
public void afterTextChanged(Editable arg0) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1,
int arg2, int arg3) {
// TODO Auto-generated method stub
}
@Override
public void onTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
// TODO Auto-generated method stub
String Ltrs=mDrq.getText().toString();
Double LTR=Double.parseDouble(Ltrs);
if(Integer.parseInt(Ltrs)>10){
Double drq=((0.20)*(LTR));
mEDitTxt.setText(""+drq+"");
}
}
});
答案 0 :(得分:0)
最可能的问题是
Double LTR=Double.parseDouble(Ltrs);
抛出NumberFormatException
,因为Ltrs(应该是小写的btw - 大写是用于类)将无法解析为double。
修复如下:
@Override
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
String text = mDrq.getText().toString();
try {
Double dbl = Double.parseDouble(text);
if (Integer.parseInt(txt) > 10) {
Double drq = ((0.20)*(dbl));
mEDitTxt.setText(String.valueOf(drq));
}
} catch (NumberFormatException nfe) {
Log.e(TAG, "Couldnt parse textfield", nfe);
}
}
请注意String.valueOf
等其他修正