android - java.lang.IndexOutOfBoundsException : setSpan (2 . .. 2) 超出长度 1

标签 android

我遇到了这个异常,我是 android 的新手,所以请帮助我。

E/UncaughtException: java.lang.IndexOutOfBoundsException: setSpan (2 ... 2) ends beyond length 1

    holder.oldLaundriesQuantityEditText.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {

            if(s.toString().length()>0){
                int editedQuantity = Integer.parseInt(s.toString());

                if(editedQuantity==0){

                    finalHolder.oldLaundriesQuantityEditText.setText("1");

                }
                if(editedQuantity>oldLaundriesModelArrayList.get(position).getRemain_quantity()){

                    finalHolder.oldLaundriesQuantityEditText.setText(String.valueOf(
                            oldLaundriesModelArrayList.get(position).getRemain_quantity()
                    ));

                }

                finalHolder.oldLaundriesQuantityEditText.setSelection(count);
            }

        }

        @Override
        public void afterTextChanged(Editable s) {

        }
    });

最佳答案

当您已经输入了长度为 2 的文本(例如 "10")但剩余数量返回一位数字(例如 "9")时,就会发生此问题,因为如果计数值为 2。在设置选择中,您使用的是计数值,并且只有一个长度为 1 但设置为 2 的字符串。

代替

finalHolder.oldLaundriesQuantityEditText.setSelection(count);

使用

finalHolder.oldLaundriesQuantityEditText.setSelection(finalHolder.oldLaundriesQuantityEditText.getText().toString().trim().length());

为了更好更干净,存储值

String.valueOf(oldLaundriesModelArrayList.get(position).getRemain_quantity());

在设置为edittext之前设置为一个字符串,然后使用相同的字符串对象来获取字符串的长度。

关于android - java.lang.IndexOutOfBoundsException : setSpan (2 . .. 2) 超出长度 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45160622/

相关文章:

android - 当我尝试同步Gradle文件时,出现错误

android - 如何找到地理点之间的距离?

android - Espresso 点击 webView 按钮

android - 在提供包含的不仅仅是 TextView 的组 View 时,如何保留 ExpandableListView 的默认列表项按下行为?

android - Android 上的 PdfDocument - 填充 PDF

java - 如何给 EditText 添加下划线

android - 如何在内容滚动时捕获 ScrollView 的一部分?

android - 如何让Android中的文字从左向右移动?

javascript - 如何提示从嵌入 map 进入 Google map 导航器页面打开 Google map 路线?

android - 如何恢复协程的真实调用轨迹?