java - 当未输入任何内容并按下按钮时 Android 应用程序崩溃

标签 java android if-statement crash

您好,我正在开发 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/

相关文章:

java - 在每个 http 请求上向客户端发送 stomp 消息

android - 资源 $NotFoundException google_play_services_version 在 gradle 和 robolectric 升级之后

java - 是什么导致了 java.lang.NoSuchMethodError : com. fastxml.jackson.core.JsonFactory.requiresPropertyOrdering()Z

android - 如何知道 iOS 设备在某个附近?

android - 获取插入后的自增值

python - 行值的总和(如果大于零)

mysql - 如何在此 MySQL 查询中包含 IF 语句?

java - 为什么我的 Eclipse 程序终止?

java - 为特定应用程序模块启用 Android X

java - 为什么我的 Eclipse Maven 控制台日志中都是来自 Guice 的 "binding"垃圾?