Android应用程序崩溃时,输入任何内容,并按下按钮(Android app crashes wh

2019-10-19 20:42发布

嗨,我工作的一个Android应用程序,想寻求一些帮助:用户在EDITTEXT并按下进入数/点击此按钮,获得在回答现场文本显示的转换。

不幸的是,如果不输入任何与用户点击按钮的应用程序崩溃。

谁能帮我把它变成代码:

如果EDITTEXT是空的,点击按钮显示0.00答案文本字段。

或者如果EDITTEXT的另一种方式是空的,按钮被按下显示吐司消息

如果有人明白我在说什么,可以帮助我将不胜感激,因为我想在发布之前提高我对用户的应用程序;-)

我更新的代码:

    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是红色的,如果(!myStrisEmpty())//(!myStrisEmpty())是红色

我一直试图几个小时,天acomplish这个任务。 简单地取得用户在其中输入然后一个数字点击按钮转换的数量和下方显示它变成一个TextView回答一个应用程序。 如果我不输入任何内容,然后单击按钮的应用程序崩溃。 我想举杯消息,而不是它崩溃说“请输入一个数字”

Answer 1:

您正在试图为空字符串转换为数字。
你应该做的是检查,如果该字符串不为空:

更改这些行:

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);


Answer 2:

如果我理解你WEEL,你正在努力实现的是:

String input = editText.getText().toString();
    if (input.isEmpty())
        textView.setText("0.00");
    else{
    // do whatever conversions
        textView.setText(result);
   }


Answer 3:

我想这是因为你调用原始的toString()方法。 尝试这个:

更换:

answer.setText(ans.toString());

附:

answer.setText(String.valueOf(ans));


文章来源: Android app crashes when nothing is entered and button is pressed