[英]Android app crashes when nothing is entered and button is pressed
嗨,我正在开发一个Android应用程序,并希望寻求帮助:用户在editText上输入数字,然后按下/单击按钮以使转换显示在答案字段文本中。
不幸的是,如果没有输入任何内容并且用户单击按钮,则应用程序崩溃。
谁能帮助我将其放入代码中:
如果editText为空并且单击了按钮,则答案文本字段中将显示0.00。
否则,如果editText为空并且按下按钮,则显示Toast消息
?
如果有人了解我在说什么并且可以提供帮助,我将不胜感激,因为我想在发布之前为用户改善应用程序;-)
我更新的代码:
EditText editText = (EditText)findViewById(R.id.editText);
Double num1 = 0.0;
final String myStr = editText.getText().toString();
if (!myStrisEmpty())
{
num1 = Double.parseDouble(myStr);
}
else
{
Toast.makeText(getApplicationContext(), getResources().getString(R.string.noinput),
Toast.LENGTH_LONG).show();
}
问题是这样的:final String myStr = editText.getText()。toString(); // editText为红色,如果(!myStrisEmpty())//(!myStrisEmpty())为红色
我已经尝试了数小时和数天来完成此任务。 只需制作一个应用程序,用户可以在其中输入数字,然后单击按钮以将数字转换并在下面将其显示为textview答案。 如果我没有输入任何内容,然后单击按钮,则应用程序崩溃。 我想要一个吐司消息,而不是崩溃的说“请输入数字”
您正在尝试将空字符串转换为数字。
您应该做的是检查字符串是否为空:
更改这些行:
EditText editText = (EditText) findViewById(R.id.editText);
Double num1 = Double.parseDouble(editText.getText().toString());
至
EditText editText = (EditText)findViewById(R.id.editText);
Double num1 = 0.0;
final String myStr = editText.getText().toString();
if (!myStr.isEmpty())
{
num1 = Double.parseDouble(myStr);
}
else
{
Toast.makeText(getApplicationContext(), getResources().getString(R.string.noinput),
Toast.LENGTH_LONG).show();
}
您可以将getResources()。getString(R.string.noinput)(在/values/strings.xml
文件夹中设置)替换为硬编码的字符串(但这不是一个好习惯),例如“您未输入任何值“
和这个:
answer.setText(ans.toString());
应该:
answer.setText("" + ans);
如果我理解您的意思,您想要实现的目标是:
String input = editText.getText().toString();
if (input.isEmpty())
textView.setText("0.00");
else{
// do whatever conversions
textView.setText(result);
}
我认为这是因为您要在原语上调用toString()方法。 尝试这个:
更换:
answer.setText(ans.toString());
附:
answer.setText(String.valueOf(ans));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.