记一次EditText设置默认选中setSelection的一个bug

需求:在重命名的时候,要默认选中文件的后缀之前的名字;

代码如下:

int index = name.lastIndexOf("."); if (index > 0)     renameEditText.setSelection(0, index);
但是发现有的文件重命名的时候app崩溃,报错如下: 但是发现有的文件重命名的时候app崩溃,报错如下:
 java.lang.IndexOutOfBoundsException: setSpan (32 ... 32) ends beyond length 30 java.lang.IndexOutOfBoundsException: setSpan (32 ... 32) ends beyond length 30
java.lang.IndexOutOfBoundsException: setSpan (32 ... 32) ends beyond length 30
百思不得其解,我的index就是32啊,这个beyond 30是哪里来的?  百思不得其解,我的index就是32啊,这个beyond 30是哪里来的?
后来发现在布局文件中设置了 EditText的 maxLength属性为30,所以有此错误!在此记录! 后来发现在布局文件中设置了 EditText的 maxLength属性为30,所以有此错误!在此记录!

经验分享 程序员 微信小程序 职场和发展