这是我的代码
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
try {
if (myswitch.isChecked()) {
editText.setHint("IDR");
editText1.setHint("USD");
double Rupiah = Double.valueOf(editText.getText().toString());
double convusd = Rupiah / 13698;
DecimalFormat dformat = new DecimalFormat("####,###,###.00");
editText1.setText(String.format("$" + dformat.format(convusd)));
} else {
editText.setHint("USD");
editText1.setHint("IDR");
double USD = Double.valueOf(editText.getText().toString());
double convidr = USD * 13698;
DecimalFormat dformat = new DecimalFormat("####,###,###.00");
editText1.setText(String.valueOf("Rp." + dformat.format(convidr)));
}
} catch (IOException e) {
System.err.println("Caught IOException: " + e.getMessage());
}
}
});`
如果按下按钮时EditText为空,则我的应用程序有错误。
您的代码有一些问题:
为什么要在单击后设置提示,并且在同一事件中尝试转换为值?用户不应该首先看到提示,输入值,然后才转换输入吗?
尝试转换输入时,应检查内部是否确实有一个值,例如:
String inputVal = editText.getText();
if(inputVal != null && !inputVal.isEmpty())
{
//do some stuff
}
如果有一个值,请确保它是您期望的值。将输入类型设置为EditText:
android:inputType="numberDecimal"
并确保您应该执行以下操作:
double d;
try {
d = Double.parseDouble(inputVal);
}
catch (NumberFormatException e) {
// The input is not what you thought it was, handle it
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句