我有一个非常简单的转换器应用程序我已创建,如果将数据输入到一个或另一个文本框中它可以正常工作,但是如果我将它们都留空并单击一个或其他转换按钮它会崩溃,所以我尝试要包含一个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));
}
});
}
}
答案 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));
}
做几英寸到几厘米的事情。