Tôi muốn thêm khoảng trắng khi người dùng chọn văn bản từ đề xuất hoàn thành tự động, vì vậy khi anh tiếp tục nhập, anh ta sẽ bắt đầu từ một từ mới.Cách thêm dấu cách vào đề xuất AutoCompleteTextView
Tôi đã cố gắng thực hiện việc đó bằng cách sử dụng TextWatcher
nhưng tôi nhận được IndexOutOfBoundsException
.
Mọi đề xuất?
người quan sát văn bản tôi sử dụng là:
private class AddSpaceTextWatcher implements TextWatcher{
boolean shouldAddSpace = false;
@Override
public void beforeTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (count - before > 1) // check that the new input is not from the keyboard
shouldAddSpace = true;
}
@Override
public void afterTextChanged(Editable editable) {
if (shouldAddSpace) {
shouldAddSpace = false;
mAutoCompleteTextView.setText(" ");
}
}
}
Ngoại lệ tôi nhận được là:
java.lang.IndexOutOfBoundsException: setSpan (18 ... 18) ends beyond length 1
at android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:1018)
at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:611)
at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:607)
at android.text.Selection.setSelection(Selection.java:76)
at android.text.Selection.setSelection(Selection.java:87)
at android.widget.EditText.setSelection(EditText.java:99)
at android.widget.SearchView.setQuery(SearchView.java:1465)
at android.widget.SearchView.onQueryRefine(SearchView.java:889)
at android.widget.SuggestionsAdapter.onClick(SuggestionsAdapter.java:371)
at android.view.View.performClick(View.java:4756)
at android.view.View$PerformClick.run(View.java:19748)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:898)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:693)
bạn có thể đăng mã và ngăn xếp của ngoại lệ không? – Blackbelt
có thể bạn cần gọi nối thêm thay vì setText – Blackbelt
bạn có thể đăng mã arrayAdapter của mình không. –