btnNadoplata.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
long inputValue1 = Long.parseLong(text1.getText().toString());
String encodedHash = Uri.encode("#");
if (text1.getText().length() == 14 ) {
startActivity(new Intent("android.intent.action.CALL", Uri.parse("tel:*123*" + inputValue1 + encodedHash)));
}else {
Toast.makeText(bonbon.this, "Krivi kod. Unesi 14-znamenkasti kod sa bona!", Toast.LENGTH_SHORT).show();
}
}
});
我有一个editText,这时用户需要输入一个number14位数字。如果数字小于或大于14位,则当用户单击按钮时,他会收到消息说输入不正确。问题是当editText为空,并且用户单击按钮时,应用程序崩溃。我该如何更改,因此,如果editText为空,用户会从上述代码部分获取消息?
对不起,我的英语不好。
最佳答案
它可能在此行崩溃:
long inputValue1 = Long.parseLong(text1.getText().toString());
实际上,如果您在EditText的
text1
中有一个空字符串,则函数parseLong()
将引发NumberFormatException
异常。在继续之前,您应该测试
text1
文本的值:public void onClick(View v)
{
if (text1.getText().toString().compareTo("") == 0)
{
long inputValue1 = Long.parseLong(text1.getText().toString());
String encodedHash = Uri.encode("#");
...
或者,您可以添加
try/catch
指令来捕获Long.parseLong()
引发的异常。public void onClick(View v)
{
try
{
long inputValue1 = Long.parseLong(text1.getText().toString());
String encodedHash = Uri.encode("#");
...
}
catch (NumberFormatException nfe)
{
...
}
关于android - 单击带有空editText的按钮会导致应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6962859/