您好我正在开发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应答中。如果我没有输入任何内容并单击按钮,应用程序崩溃。我想要一个致敬的消息而不是崩溃说“请输入一个号码”
答案 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));