2014-12-12 20 views
8

Ricevo un valore IndexOutOfBoundsException su Samsung Galaxy S5 e Note 3 e 4. Non fa riferimento al mio codice. Qualcuno ha incontrato questo? Non sono stato in grado di trovare nulla qui.IndexOutOfBoundsException su dispositivi Samsung

sembra essere di tanto in tanto succede quando si tenta di lunga clic sul EditText per incollare qualcosa in

Edit:.

sto usando un semplice campo EditText (non in ListView o Spinner). C'è un suggerimento di circa 28 caratteri. Sto attivando la messa a fuoco via clearFocus un paio di volte e sto usando un setOnEditorActionListener e setOnFocusChangeListener che controllano l'associazione di un frammento all'attività.

Edit # 2:

sono stato in grado di riprodurre con successo cercando di premere a lungo sul EditText per cercare di incollare qualcosa. Succede solo quando c'è già un testo in EditText e premo a lungo a DESTRA del testo, non su di esso. Inoltre, EditText non deve avere lo stato attivo.

Qualsiasi soluzione possibile creando un EditText personalizzato e sovrascrivendo alcuni metodi?

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) 

Codice:

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

stai usando ListView o filatore,? È necessario inserire il codice – said

+0

No, è solo un EditText pianura. Controlla la mia modifica – ono

+1

CHE COSA È IL CODICE IN "setOnEditorActionListener" e onlongclicklistner – said

risposta

0

ho affrontato l'errore

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

dettagli log

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) 

ho attivato lo stesso problema penso che questo link può aiutarti

Android - SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length

Problemi correlati