如果我将editText
字段用作Double
值,则会出错:
public void Format1(View view) {
DecimalFormat num = new DecimalFormat("000.00");
EditText editText = (EditText)findViewById(R.id.editText_075_1);
TextView textView = (TextView)findViewById(R.id.textView_075_1);
//textView.setText(num.format(1.6789));// works
textView.setText(num.format(Double.parseDouble(editText.toString()))); // error
答案 0 :(得分:0)
这意味着,editText不包含正确的双精度!因此,在将编辑文本设置为textView之前检查编辑文本是否为正确的数字格式会更好!
boolean checkDouble(String val) {
try {
Double.parseDouble(val);
return true;
} catch (NumberFormatException e) {
return false;
}
}
并像
一样使用它if(checkDouble(editText.toString())){
textView.setText(num.format(Double.parseDouble(val)));
}else{
textView.setText("Please enter a valid double!");
}
希望这有帮助!
答案 1 :(得分:0)
问题已解决: 我们使用Stream而不使用String vergot(getText):
editText.getText().toString()) // String : correct
editText.getText()。toString())// Stream