您好,我正在开发 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();
}
问题是这样的: 最终字符串 myStr = editText.getText().toString();//editText 为红色 if (!myStrisEmpty())//(!myStrisEmpty()) 为红色
我已经花了几个小时和几天的时间来完成这项任务。只需制作一个应用程序,用户输入一个数字,然后单击按钮来转换该数字并将其显示在下面的 TextView 答案中。如果我不输入任何内容并单击按钮,应用程序就会崩溃。我想要一条 toast 消息,而不是崩溃时说“请输入数字”
最佳答案
您正在尝试将空字符串转换为数字。
您应该做的是检查字符串是否不为空:
更改这些行:
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);
关于java - 当未输入任何内容并按下按钮时 Android 应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23029262/