Si è verificato un arresto anomalo durante la deselezione del testo in un TextView Android selezionabile. Questo accade quando creo una TextView selezionabile e setto LinkMovementMethod.IllegalArgumentException durante la selezione del testo in Android TextView
IllegalArgumentException in TextView
Sembra che sia un bug all'interno di Android.
java.lang.IllegalArgumentException: Invalid offset: -1. Valid range is [0, 10562]
at android.text.method.WordIterator.checkOffsetIsValid(WordIterator.java:380)
at android.text.method.WordIterator.isBoundary(WordIterator.java:101)
at android.widget.Editor$SelectionStartHandleView.positionAtCursorOffset(Editor.java:4260)
at android.widget.Editor$HandleView.updatePosition(Editor.java:3708)
at android.widget.Editor$PositionListener.onPreDraw(Editor.java:2507)
at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:944)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2055)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6013)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
at android.view.Choreographer.doCallbacks(Choreographer.java:670)
at android.view.Choreographer.doFrame(Choreographer.java:606)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Questo mi ha salvato la vita! Molte grazie! – Arreis
Anche io sto affrontando il problema simile, dove devo mantenere questo metodo. – vijaypalod
hey @mVJ. È necessario estendere TextView come risposta di mariotaku qui sotto. Basicamente guarda la sua risposta ma sostituisce il metodo dispatchTouchEvent al suo interno. Quello sarebbe un nuovo file nel tuo progetto chiamato FixedTextView (o qualsiasi altra cosa tu voglia chiamare) e tu faresti riferimento invece del TextView predefinito – TrevorSStone