小编use*_*726的帖子

EditText.setText(String)使数组超出范围

我有一个从地址解析器获取位置地址的应用,它在线程内执行请求。调用getActivity()。runOnUiThread时,我已经在字符串变量中包含了来自geocoder的地址响应,然后检查它是否为空,然后开始将其值分配给视图中的字段:

  getActivity().runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                if (isAdded())
                                    if (!TextUtils.isEmpty(strAddress)){
                                        et.setFocusable(false);
                                        et.setFocusableInTouchMode(false);
                                        et.setText(strAddress);
                                        et.setTextColor(getResources().getColor(
                                                android.R.color.black));
                                        et.setFocusable(true);
                                        et.setFocusableInTouchMode(true);
                                    } else {
                                        et.setTextColor(getResources().getColor(
                                                android.R.color.black));
                                    }
                                etSource.setEnabled(true);
                            }
                        });
Run Code Online (Sandbox Code Playgroud)

在这条线上:

et.setText(strAddress);
Run Code Online (Sandbox Code Playgroud)

错误

ArrayIndexOutOfBounds:设置范围-1

抛出并间歇性地发生,为什么会发生?

根据要求编辑

  java.lang.IndexOutOfBoundsException: setSpan (-1 ... -1) starts before 0
                                                                         at android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:1270)
                                                                         at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:684)
                                                                         at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:677)
                                                                         at android.text.Selection.setSelection(Selection.java:76)
                                                                         at android.widget.Editor$SelectionModifierCursorController.resetDragAcceleratorState(Editor.java:5689)
                                                                         at android.widget.Editor$SelectionModifierCursorController.resetTouchOffsets(Editor.java:5679)
                                                                         at android.widget.Editor.sendOnTextChanged(Editor.java:1280)
                                                                         at android.widget.TextView.sendOnTextChanged(TextView.java:8220)
                                                                         at android.widget.TextView.setText(TextView.java:4494)
                                                                         at android.widget.TextView.setText(TextView.java:4348)
                                                                         at android.widget.EditText.setText(EditText.java:89)
                                                                         at android.widget.TextView.setText(TextView.java:4323)
                                                                         at library.fragments.MapFragment$17$1.run(MapFragment.java:2156)
                                                                         at android.os.Handler.handleCallback(Handler.java:751)
                                                                         at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                         at android.os.Looper.loop(Looper.java:159)
                                                                         at android.app.ActivityThread.main(ActivityThread.java:6097)
                                                                         at java.lang.reflect.Method.invoke(Native Method) …
Run Code Online (Sandbox Code Playgroud)

java multithreading android google-geocoder

5
推荐指数
0
解决办法
557
查看次数

标签 统计

android ×1

google-geocoder ×1

java ×1

multithreading ×1