繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM