Samsung设备上的IndexOutOfBoundsException

ono*_*ono 11 android indexoutofboundsexception samsung-mobile

我在Samsung Galaxy S5和Note 3和4上得到了IndexOutOfBoundsException.它没有引用我的代码.有没有遇到过这个?我在这里找不到任何东西.

当尝试长按EditText以粘贴内容时,似乎偶尔会发生这种情况.

编辑:

我正在使用一个简单的EditText字段(不在ListView或Spinner中).有一个约28个字符的提示.我切换经由调焦clearFocus几次,我使用的是setOnEditorActionListenersetOnFocusChangeListener该控制连接到所述活性的片段.

编辑#2:

我已经能够通过尝试长按EditText来尝试粘贴一些内容来成功地重现它.它只发生在EditText中已有文本的情况下,我长按文本的右侧,而不是文本的右侧.此外,EditText必须没有焦点.

通过创建自定义EditText和覆盖某些方法的任何可能的解决方案?

java.lang.IndexOutOfBoundsException: setSpan (11 ... 11) ends beyond length 0
   at android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:1024)
   at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:594)
   at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:590)
   at android.text.Selection.setSelection(Selection.java:116)
   at android.text.Selection.setSelection(Selection.java:127)
   at android.widget.Editor.performLongClick(Editor.java:1008)
   at android.widget.TextView.performLongClick(TextView.java:10637)
   at android.view.View$CheckForLongPress.run(View.java:19482)
   at android.os.Handler.handleCallback(Handler.java:733)
   at android.os.Handler.dispatchMessage(Handler.java:95)
   at android.os.Looper.loop(Looper.java:146)
   at android.app.ActivityThread.main(ActivityThread.java:5678)
   at java.lang.reflect.Method.invokeNative(Native Method)
   at java.lang.reflect.Method.invoke(Method.java:515)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107)
   at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

码:

editText.setOnEditorActionListener(new OnEditorActionListener() {

        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            String searchText = v.getText().toString();

            FragmentSearchList fragmentSearchList = (FragmentSearchList) getChildFragmentManager().findFragmentByTag(FRAGMENT_SEARCH_LIST_TAG);

            if(fragmentSearchList != null){
                fragmentSearchList.executeSearch(searchText);
            }

            return true;
        }

    });

editText.setOnFocusChangeListener(new OnFocusChangeListener(){

        @Override
        public void onFocusChange(View view, boolean hasFocus) {
            if(hasFocus){

                FragmentManager fragmentManager = getChildFragmentManager();

                Fragment fragment = fragmentManager.findFragmentByTag(FRAGMENT_SEARCH_LIST_TAG);

                if(fragment == null){

                    editText.setText(null);

                    FragmentSearchList fragmentSearchList = FragmentSearchList.newInstance();

                    FragmentTransaction fragmentSearchListTransaction = fragmentManager.beginTransaction();
                    fragmentSearchListTransaction.add(R.id.viewGroupFragmentSearchListContainer, fragmentSearchList, FRAGMENT_SEARCH_LIST_TAG);
                    fragmentSearchListTransaction.addToBackStack(null);
                    fragmentSearchListTransaction.commit();

                }
            }
            else{

                if(!isRemovingOrPartOfRemovalChain()){
                    editText.setText(mAreaName);
                    getChildFragmentManager().popBackStack();
                }

            }
        }

    });


public boolean isRemovingOrPartOfRemovalChain(){

    if(isRemoving()){
        return true;
    }

    Fragment fragment = this.getParentFragment();

    if(fragment != null){
        if(((MainFragment)fragment).isRemovingOrPartOfRemovalChain()){
            return true;
        }
        else{
            return false;
        }
    }

    else{
        return(this.getActivity().isFinishing());
    }

}
Run Code Online (Sandbox Code Playgroud)