我在android上工作。我有个问题。当我再次单击文本框时,我的应用程序崩溃。
这是我的Logcat消息:
java.lang.IndexOutOfBoundsException: setSpan (4 ... 4) ends beyond length 0
android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:943)
android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:522)
android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:514)
android.text.Selection.setSelection(Selection.java:74)
android.text.Selection.setSelection(Selection.java:85)
android.text.method.ArrowKeyMovementMethod.onTouchEvent(ArrowKeyMovementMethod.java:410)
android.widget.TextView.onTouchEvent(TextView.java:6715)
android.widget.EditText.onTouchEvent(EditText.java:190)
android.view.View.dispatchTouchEvent(View.java:3766)
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936)
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936)
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936)
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936)
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936)
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936)
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936)
com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1731)
com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1120)
android.app.Activity.dispatchTouchEvent(Activity.java:2086)
com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1715)
android.view.ViewRoot.handleMessage(ViewRoot.java:1787)
android.os.Handler.dispatchMessage(Handler.java:99)请帮我找出这个问题的原因。提前谢谢你。
发布于 2011-12-22 17:45:45
问题的原因是以下错误:java.lang.IndexOutOfBoundsException: setSpan (4 ... 4) ends beyond length 0
显然你正在设置一个跨度,但是文本字段是空的,给出一个IndexOutOfBoundsException,在你调用setSpan之前检查输入字符串的长度。
编辑:
简单说明一下,IndexOutOfBoundsException总是意味着您试图访问超出数组实际长度的数组的一部分。字符串对象被定义为字符数组。因此,当你试图做一些事情,但是字符串的长度等于零时,你实际上会超出数组的边界。
发布于 2015-06-19 22:01:09
你还没有解释你的代码。所以很难解决你的问题。
查看this博客。这可能会对你有帮助。这篇博客说的是一个时间选择器的问题。同样的道理也适用于EditText和TextView。
setSaveFromParentEnabled(false) & setSaveEnabled(true)应该可以解决这个问题。
tp = (TimePicker) findViewById(R.id.timePickerComponent);
//two lines to add after
tp.setSaveFromParentEnabled(false);
tp.setSaveEnabled(true);发布于 2015-06-30 16:06:49
setSpan (4...4)的结尾长度超过了0,这意味着你有一个4个空格的字符串,它的实际长度/修剪长度为0,将选择设置为0会导致IndexOutOfBoundsException,你应该在设置选择之前检查修剪长度
https://stackoverflow.com/questions/8602012
复制相似问题