我有一个简单的过程
简单地说,用户在EditText中输入一个数字,选择单选按钮然后按下计算。单选按钮连接到if语句,而if语句又指向返回的浮点数,替换EditText中显示的数字。但是,如果在输入任何数字之前按下计算按钮,则会出现数字格式异常,从而导致应用程序崩溃。
现在我将在EditText中输入一个默认值以减少发生这种情况的可能性,但我想知道是否有办法使用像if语句或类似的东西一起避免异常
这是一些示例代码
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.RadioButton;
import com.admob.android.ads.AdManager;
import com.admob.android.ads.AdView;
import com.medialets.android.analytics.MMAnalyticsManager;
public class Area extends Activity {
private EditText text9;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.area);
text9 = (EditText)findViewById(R.id.EditText09);
public void myClickHandler09(View view){
switch (view.getId()) {
case R.id.Button09:
RadioButton SeveralRadioButtons = (RadioButton) findViewById (R.id.RadioButton901);
float inputValue = Float.parseFloat(text9.getText().toString());
String checkValue = String.valueOf(inputValue);
if (checkValue.equals("")){
text9.setText(String.valueOf(""));
} else {
if (SeveralRadioButtons.isChecked()) {
text9.setText(String
.valueOf(conversionfactor(inputValue)));
}
break;
}}}
private double conversionfactor(float f){
return f * 6.4516;
}
其中 (SeveralRadioButtons) 实际上有几个单选按钮,每个单独的if语句和私有双重
正如您所看到的,我已经尝试解决问题,但仍会出现数字格式异常。
答案 0 :(得分:0)
在你的转换检查周围放置一个if语句(第一个!)或一个空字符串。默认值有效,直到人们在文本框中放置一个空字符串。
答案 1 :(得分:0)
在你的按钮的onClickListener中,你可以编写一个if语句来检查字符串是否为空或“”,然后才能将数字实际发送到你发送它的地方......
答案 2 :(得分:0)
除了遵循检查null
和""
值的其他建议之外,您还可以捕获NumberFormatException
并处理错误案例。您可以中止计算并显示错误消息。
如果抛出异常,则处理异常意味着如果您遗漏了其他边缘情况,则您的用户将不会遇到完整的应用程序崩溃。