2014-12-12 2 views
8

Я получаю IndexOutOfBoundsException на Samsung Galaxy S5 и примечании 3 и 4. Он не ссылается на мой код. Кто-нибудь сталкивался с этим? Мне здесь ничего не удалось найти.IndexOutOfBoundsException на устройствах Samsung

Похоже, что иногда происходит, когда пытаются долго нажмите на EditText, чтобы вставить что-то в

Edit:.

Я использую простое поле EditText (не в ListView или Spinner). Есть намек на 28 символов. Я переключаю фокус через clearFocus несколько раз, и я использую setOnEditorActionListener и setOnFocusChangeListener, которые управляют прикреплением фрагмента к Activity.

Edit # 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) 

Код:

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()); 
    } 

} 
+0

Вы используете listview или spinner?, Вы должны разместить свой код – said

+0

Нет, это просто простой текстовый редактор. Проверьте мое редактирование – ono

+1

ЧТО ТАКОЕ КОД В «setOnEditorActionListener» и onlongclicklistner – said

ответ

0

я столкнулся ошибку

Fatal Exception: java.lang.IndexOutOfBoundsException 
setSpan (1 ... 1) ends beyond length 0 

детали войти

Fatal Exception: java.lang.IndexOutOfBoundsException: setSpan (1 ... 1) ends beyond length 0 
at android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:1265) 
at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:684) 
at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:677) 
android.text.Selection.setSelection(Selection.java:76) 

я вызвал тот же вопрос, я думаю, что эта связь может помочь вам

Android - SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length

Смежные вопросы