Я хочу выполнить поиск двумя способами с помощью autocompletetextview.Первый - базовый, который использует ArrayAdapter (этот работает нормально), второй - IME_OPTION_SEARCH или actionSearch.Я хочу обсудить второй вопрос, который является проблемой здесь.
По сути, мне нужно добавить imeOptions к autocompletetextview с помощью "actionSearch", и это будет выглядеть так:
<AutoCompleteTextView
android:layout_width="0dp"
android:layout_height="wrap_content" android:id="@+id/acPetShopSearch"
app:layout_constraintStart_toEndOf="@+id/ivPetShopSearchIcon" android:layout_marginStart="8dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent" android:backgroundTint="@android:color/transparent"
android:hint="@string/pet_shop_search_hint"
android:imeOptions="actionSearch"
android:inputType="textAutoComplete|textAutoCorrect"
app:layout_constraintEnd_toEndOf="parent" android:layout_marginEnd="16dp"
android:textColorHint="@color/pinkish_grey" android:textColor="@color/purple_brown"
android:textSize="12sp" android:singleLine="true"/>
Затем,Я установил прослушиватель редактора в виде простого EditText с actionSearch, так что это было бы так:
acPetShopSearch.setOnEditorActionListener(object : TextView.OnEditorActionListener {
override fun onEditorAction(v: TextView, actionId: Int, event: KeyEvent): Boolean {
if (actionId == EditorInfo.IME_ACTION_SEARCH) {
doSearch(acPetShopSearch.text.toString())
return true
}
return false
}
})
Я попробовал это, и я получил ошибку, подобную этой:
java.lang.IllegalArgumentException: параметр, указанный как ненулевое, имеет значение null: метод kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, событие параметра в id.paw.pawcolony.view.petshop.PetShopActivity $ successCity $ 1.onEditorAction 7: неизвестно (неизвестно)в android.widget.TextView.onEditorAction (TextView.java:6271) по адресу com.android.internal.widget.EditableInputConnection.performEditorAction (EditableInputConnection.java:138) по адресу com.android.internal.view.IInputConnectionWrapper.exe.: 360) в com.android.internal.view.IInputConnectionWrapper $ MyHandler.handleMessage (IInputConnectionWrapper.java:85) на android.os.Handler.dispatchMessage (Handler.java:106) на android.os.Looper.loop (Looper.java:201) на android.app.ActivityThread.main (ActivityThread.java:6806) в java.lang.reflect.Method.invoke (собственный метод) в com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit.java:547) в com.android.internal.os.ZygoteInit.main (ZygoteInit).java: 873)
Отличается ли поведение AutoCompleteTextView от EditText?Есть ли способ добавить функцию поиска в AutoCompleteTextView?