02-26 18:45:22.793: E/AndroidRuntime(30449): FATAL EXCEPTION: main
02-26 18:45:22.793: E/AndroidRuntime(30449): Process: cn.beeba.app, PID: 30449
02-26 18:45:22.793: E/AndroidRuntime(30449): java.lang.IndexOutOfBoundsException: setSpan (26 ... 26) ends beyond length 10
02-26 18:45:22.793: E/AndroidRuntime(30449): at android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:1018)
02-26 18:45:22.793: E/AndroidRuntime(30449): at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:611)
02-26 18:45:22.793: E/AndroidRuntime(30449): at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:607)
02-26 18:45:22.793: E/AndroidRuntime(30449): at android.text.Selection.setSelection(Selection.java:76)
02-26 18:45:22.793: E/AndroidRuntime(30449): at android.text.Selection.setSelection(Selection.java:87)
02-26 18:45:22.793: E/AndroidRuntime(30449): at android.widget.EditText.setSelection(EditText.java:99)
出现此问题的原因是限制的字符为10,但是字符太长时,就会出现以上错误。
解决办法为:
if (length <= 10) {
et_content.setSelection(length); // 将光标移至文字末尾
}

本文介绍了一个常见的Android开发问题——IndexOutOfBoundsException,并提供了解决方案。当尝试设置的文本跨度超出实际文本长度时,此异常会抛出。文章给出了一个判断文本长度并在安全范围内设置光标位置的方法。
1185

被折叠的 条评论
为什么被折叠?



