android - 单击带有空editText的按钮会导致应用程序崩溃

标签 android crash android-edittext

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/

相关文章:

android - 通过 Wifi Direct (p2p) 服务将 Raspberry 与 Android 连接

java - 如何注册一些 URL 命名空间 (myapp ://app. start/) 以通过在 Android OS 的浏览器中调用 URL 来访问您的程序?

带有 Kotlin 的 Android - 如何使用 HttpUrlConnection

c# - 当我使用属性窗口中的 pixbuf 选项将图像添加到 gtk 窗口时,Monodevelop 不断崩溃

android - 从以前的 Android 应用程序版本向 SQLite 添加额外的列

android - 如何使 TextView 看起来与 EditText 完全一样?

php - PHP的报告是非常缓慢的,并在Firefox崩溃

Android - 状态通知的EditText

java - 在 android xml 文件的 edittext View 中引用一个整数

java - 无法从 View 转换到 EditText