我在我的应用中有这段代码
Button buttonConvertMilesToKm = (Button) findViewById(R.id.buttonConvertMilesToKm);
buttonConvertMilesToKm.setOnClickListener(new View.OnClickListener() {
EditText textBoxMiles = (EditText)findViewById(R.id.editTextMiles);
EditText textBoxKm = (EditText)findViewById(R.id.editTextKm);
public void onClick(View v) {
double vMiles = Double.valueOf(textBoxMiles.getText().toString());
double vKm = vMiles / 0.62317;
DecimalFormat formatVal = new DecimalFormat("##.##");
textBoxKm.setText(formatVal.format(vKm));
}
});
更新
在完成评论之后,我就像这样实施了
buttonConvertMilesToKm.setOnClickListener(new View.OnClickListener() {
EditText textBoxMiles = (EditText)findViewById(R.id.editTextMiles);
EditText textBoxKm = (EditText)findViewById(R.id.editTextKm);
public void onClick(View v) {
Double vMiles = Double.valueOf(textBoxMiles.getText().toString());
//boolean x = android.text.TextUtils.isDigitsOnly(CharSequence Double.valueOf(textBoxMiles.getText().toString()));
//if(vMiles.isNaN()) {
if(!TextUtils.isEmpty(textBoxMiles.getText().toString())){
double vKm = vMiles / 0.62317;
DecimalFormat formatVal = new DecimalFormat("##.##");
textBoxKm.setText(formatVal.format(vKm));
}else {
Toast.makeText(getApplicationContext(), "You did not enter a number", Toast.LENGTH_SHORT).show();
return;
}
}
});
如果文本字段为空,仍然会崩溃 如果输入正确的值,它可以正常工作
我是Android的新手,任何人都可以帮助我
谢谢
答案 0 :(得分:-1)
尝试将此添加到您的EditText:
android:inputType="numberDecimal"
在设置这样的文字之前,也不要忘记检查它是否为空:
textBoxMiles.getText().toString().equals("")
如果条件如下:
if(textBoxMiles.getText().toString().equals("")) {
//empty
}else {
//not empty do something
}
并更改此行:
Double vMiles = Double.valueOf(textBoxMiles.getText().toString());
为:
Double vMiles = Double.parseDouble(textBoxMiles.getText().toString());
答案 1 :(得分:-2)
public void onClick(View v) {
String textMiles = textBoxMiles.getText().toString();
if (!textMiles.trim().equals("")) {
try {
double vMiles = Double.parseDouble(textMiles);
double vKm = vMiles / 0.62317;
DecimalFormat formatVal = new DecimalFormat("##.##");
textBoxKm.setText(formatVal.format(vKm));
} catch (NumberFormatException e) {
// alternative action
}
} else {
// alternative action
}
}