当前位置: 首页 > 知识库问答 >
问题:

当我从EditText中删除所有内容时,为什么应用程序会崩溃?

杭永安
2023-03-14

我将imageTextView编程为显示prenumeString的第一个字母,这是从编辑文本中获得的。问题是,每当编辑文本中出现所有字母时,应用程序就会崩溃。有什么想法吗?

代码

prenume.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void afterTextChanged(Editable editable) {
                prenumeString = prenume.getText().toString();
                char[] characters = prenumeString.toCharArray();
                char firstChar = characters[0];
                imageTextView.setText(String.valueOf(firstChar));
                //TODO: Debug the error from letter showing

            }
        });

共有2个答案

何兴邦
2023-03-14

应用程序崩溃,因为您正在访问数组的第一个元素,该元素为零。

清除文本后调用字符[0]时,数组字符为空,因此引发越界异常。

您应该考虑数组为空的情况。

宋晋
2023-03-14

如果删除所有文本,则访问afterTextChanged中的第一个字符,数组大小为0。

    char[] characters = prenumeString.toCharArray();
    if (characters.length != 0){
       char firstChar = characters[0];
       // ...
    }
 类似资料:
  • 在我的应用程序中,我在回收商视图中显示项目列表。我为回收商视图中的每个项目创建了两个功能编辑和删除。使用此应用程序,用户可以创建任务列表,可以编辑项目,也可以从回收器视图中删除项目。现在,如果我单击“编辑”,它就可以完美地工作。但是,如果我单击删除选项,则应用程序崩溃,并且消息数组索引在adaper类中因rance异常而崩溃。 这是我的适配器代码。我还提到了 代码中的行 ,其中我遇到了应用程序崩溃

  • 如何从kubernetes节点中删除所有内容? 内容包括部署、副本集等。我试图单独删除deplyoments。但是kubernetes重新创建了所有的豆荚。 有什么方法可以删除节点中存在的所有副本集吗?

  • 我的布局中有一个编辑文本,我尝试过在我的编辑文本中放置提示或文本。 当我第一次触摸或点击edittext时,移动键盘弹出输入文本,这是预期的,但edittext中的文本或提示不会被删除。我必须点击2次编辑文本,然后第一次移动键盘弹出,第二次点击删除文本。 我希望在第一次点击本身的文本应该从edittext删除。 例如:假设EditText将初始文本作为用户名,那么当用户第一次单击EditText时

  • 主要活动 公共类MainActivity扩展AppCompatActivity{String response; 公共类GetExample{OkHttpClient客户端; Xml文件