防止Android应用程序崩溃

时间:2013-04-14 00:17:35

标签: android

我有一个非常简单的转换器应用程序我已创建,如果将数据输入到一个或另一个文本框中它可以正常工作,但是如果我将它们都留空并单击一个或其他转换按钮它会崩溃,所以我尝试要包含一个if语句来处理这个问题,但它似乎忽略了该语句并且无论如何都会崩溃。基本上,如果单击按钮并且没有输入数字,我想做什么,只需向屏幕提示消息,要求用户输入数据。

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    final EditText txtCentimetersValue = (EditText) findViewById(R.id.txtCentimetersValue);
    final EditText txtInchesValue = (EditText) findViewById(R.id.txtInchesValue);

    Button btnConvert = (Button) findViewById(R.id.btnConvert);
    Button btnConvert2 = (Button) findViewById(R.id.btnConvert2);
    Button btnClear = (Button) findViewById(R.id.btnClear);

    btnClear.setOnClickListener(new OnClickListener()
    {
        @Override
        public void onClick(View arg0)
        {
            txtCentimetersValue.setText("");
            txtInchesValue.setText("");
        }
    });

    btnConvert.setOnClickListener(new OnClickListener()
    {

        @Override
        public void onClick(View arg0)
        {

                txtInchesValue.setText("");

                double centimeters = Double.valueOf(txtCentimetersValue.getText().toString());
                double inches = centimeters / 0.393700787;

                txtInchesValue.setText(String.valueOf(inches));
        }


    });


    btnConvert2.setOnClickListener(new OnClickListener()
    {
        @Override
        public void onClick(View arg0)
        {

                txtCentimetersValue.setText("");

                double inches = Double.valueOf(txtInchesValue.getText().toString());
                double centimeters = inches / 0.393700787;

                txtCentimetersValue.setText(String.valueOf(centimeters));
        }

    });
}

}

1 个答案:

答案 0 :(得分:1)

  

所以我尝试包含一个if语句来处理这个问题,但它似乎忽略了该语句并且无论如何都会崩溃。

我没有看到if语句,也许你试图用==比较字符串(你不能用Java做)或者认为值是null。无论如何,您只需使用isEmpty()

String value = txtCentimetersValue.getText().toString();
if(!value.isEmpty()) {
    double centimeters = Double.valueOf(value);
    double inches = centimeters / 0.393700787;

    txtInchesValue.setText(String.valueOf(inches));
}

做几英寸到几厘米的事情。