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());
}
}
stai usando ListView o filatore,? È necessario inserire il codice – said
No, è solo un EditText pianura. Controlla la mia modifica – ono
CHE COSA È IL CODICE IN "setOnEditorActionListener" e onlongclicklistner – said