FATAL EXCEPTION: main
java.lang.IndexOutOfBoundsException: setSpan (5 ... 5) ends beyond length 0at android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:945)at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:524)at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:516)at android.text.Selection.setSelection(Selection.java:76)at android.widget.TextView$SelectionModifierCursorController.onTouchEvent(TextView.java:8618)at android.widget.TextView.onTouchEvent(TextView.java:6952)at android.view.View.dispatchTouchEvent(View.java:4040)at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:944)at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:944)at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:944)at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:944)at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1817)at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1232)at android.app.Activity.dispatchTouchEvent(Activity.java:2303)at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1801)at android.view.ViewRoot.deliverPointerEvent(ViewRoot.java:2233)at android.view.ViewRoot.handleMessage(ViewRoot.java:1917)at android.os.Handler.dispatchMessage(Handler.java:99)at android.os.Looper.loop(Looper.java:130)at android.app.ActivityThread.main(ActivityThread.java:3768)at java.lang.reflect.Method.invokeNative(Native Method)at java.lang.reflect.Method.invoke(Method.java:507)at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)at dalvik.system.NativeStart.main(Native Method)未解决
场景:
editText = (P14_ChatEditText)findViewById(R.id.p04_message_chat_send_msg);
editText.setOnTouchListener(editTextTouchListener);
OnTouchListener editTextTouchListener = new OnTouchListener(){
@Override public boolean onTouch(View arg0, MotionEvent event) {if(event.getAction() == MotionEvent.ACTION_DOWN && dRight!=null) {
rBounds = dRight.getBounds(); final int x = (int)event.getX(); final int y = (int)event.getY();//check to make sure the touch event was within the bounds of the drawable
if(x>=(editText.getRight()-rBounds.width()) && x<=(editText.getRight()-editText.getPaddingRight()) && y>=editText.getPaddingTop() && y<=(editText.getHeight()-editText.getPaddingBottom())) {}
}
}
}