Я получаю 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());
}
}
Вы используете listview или spinner?, Вы должны разместить свой код – said
Нет, это просто простой текстовый редактор. Проверьте мое редактирование – ono
ЧТО ТАКОЕ КОД В «setOnEditorActionListener» и onlongclicklistner – said