2014-12-12 14 views
8

Ich bekomme eine IndexOutOfBoundsException auf Samsung Galaxy S5 und Note 3 und 4. Es verweist nicht auf meinen Code. Ist jemand diesem begegnet? Ich habe hier nichts gefunden.IndexOutOfBoundsException auf Samsung-Geräten

Es scheint, geschieht gelegentlich, wenn zu lange Sie auf die EditText versuchen, etwas in einfügen

Edit:.

Ich bin ein einfaches EditText Feld (nicht in Listview oder Spinner) verwendet wird. Es gibt einen Hinweis von ungefähr 28 Charakteren. Ich schalte den Fokus über clearFocus ein paar Mal und ich verwende eine setOnEditorActionListener und setOnFocusChangeListener, die Kontrolle, ein Fragment an die Aktivität zu befestigen.

Edit # 2:

Ich habe in der Lage erfolgreich zu reproduzieren durch zu langen Drücken auf der EditText versuchen, zu versuchen, etwas zu fügen. Es passiert nur, wenn sich bereits Text im EditText befindet und ich lange auf die RECHTE des Textes drücke, nicht auf den Text. Außerdem darf der EditText keinen Fokus haben.

Jede mögliche Lösung durch Erstellen eines benutzerdefinierten EditText und Überschreiben einiger Methoden?

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) 

Code:

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

verwenden Sie Listview oder Spinner;? Sie Ihren Code – said

+0

Nein, es ist nur eine einfache EditText veröffentlichen müssen. Überprüfen Sie meine Bearbeitung – ono

+1

WAS IST DER CODE IN "setOnEditorActionListener" und onlongclicklistner – said

Antwort

0

i den Fehler konfrontiert

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

Details 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) 

i das gleiche Problem ausgelöst Ich denke, diese Verbindung Ihnen helfen kann

Android - SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length