0

我有一个简单的进程正在运行

简单地说,用户在 EditText 中输入一个数字,选择单选按钮,然后按下计算。单选按钮连接到 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 语句和每个单选按钮的私有双精度

如您所见,我已经尝试解决问题,但仍然出现数字格式异常。

4

3 回答 3

0

在您的转换周围放置一个 if 语句,检查 null(第一个!)或空字符串。默认值一直有效,直到人们在文本框中输入一个空字符串。

于 2011-02-26T22:45:21.533 回答
0

在按钮的 onClickListener 中,您可以编写一个 if 语句,在实际将数字发送到您发送它的任何地方之前检查字符串是否为空或“”...

于 2011-02-26T22:47:48.970 回答
0

除了遵循检查null""值的其他建议外,您还可以捕获NumberFormatException并处理错误情况。您可以中止计算并可能显示错误消息。

如果抛出异常,则处理异常意味着如果您错过了其他一些边缘情况,您的用户将不会遇到完整的应用程序崩溃。

于 2011-02-26T23:35:33.430 回答