0

我创建了一个非常简单的转换器应用程序,如果将数据输入到一个或另一个文本框中,它可以正常工作,但是如果我将它们都留空并单击一个或另一个转换按钮,它会崩溃,所以我尝试包含一个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));
        }

    });
}

}

4

1 回答 1

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));
}

对英寸到厘米做类似的事情。

于 2013-04-14T00:23:09.170 回答