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

时间:2014-04-12 10:38:17

标签: 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();
}

问题是这样的:  final String myStr = editText.getText()。toString(); // editText为红色     if(!myStrisEmpty())//(!myStrisEmpty())是红色的

我已经花了几个小时和几天来完成这项任务。只需创建一个用户输入数字的应用程序,然后单击按钮转换数字并将其显示在textview应答中。如果我没有输入任何内容并单击按钮,应用程序崩溃。我想要一个致敬的消息而不是崩溃说“请输入一个号码”

3 个答案:

答案 0 :(得分:0)

您正在尝试将空字符串转换为数字。
你应该做的是检查字符串是否为空:

更改这些行:

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文件夹中设置)(但这不是一个好习惯),例如&# 34;你没有输入任何价值"

而且:

answer.setText(ans.toString());

应该是:

answer.setText("" + ans);

答案 1 :(得分:0)

如果我理解你,你想要实现的是:

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

答案 2 :(得分:0)

我认为这是因为你在一个原语上调用了toString()方法。试试这个:

替换:

answer.setText(ans.toString());

使用:

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