У меня есть четыре настройки autoCompleteTextViews, которые показывают раскрывающийся список в тот момент, когда они получают фокус (используя его скорее как дополнительное раскрывающееся меню, чем ожидая, когда пользователь сначала введет данные).Я извлекаю данные для выпадающего списка из хранилища в начале действия, и все 4 массива получены успешно.В остальных трех случаях в упражнении это работает как шарм.По некоторым причинам, однако, одно из этих полей просто не показывает выпадающий список.Рассматриваемый вопрос озаглавлен «loaderAutoCompleteTextView» ниже:
//Setup autoCompleteTextView list with drivers
val driverAdapter = ArrayAdapter(this, android.R.layout.simple_dropdown_item_1line, driverArrayList)
driverAutoCompleteTextView.setAdapter(driverAdapter)
//show AutoComplete information without having to type first.
driverAutoCompleteTextView.onFocusChangeListener = View.OnFocusChangeListener { /*view*/_, hasFocus ->
if (hasFocus) {
driverAutoCompleteTextView.showDropDown()
Log.d("BEAU", "DRIVER DROPDOWN SHOULD BE HERE!")
} else {
driverAutoCompleteTextView.dismissDropDown()
}
}
//Setup autoCompleteTextView list with loaders
val loaderAdapter = ArrayAdapter(this, android.R.layout.simple_dropdown_item_1line, loaderArrayList)
loaderAutoCompleteTextView.setAdapter(loaderAdapter)
//show AutoComplete information without having to type first.
loaderAutoCompleteTextView.onFocusChangeListener = View.OnFocusChangeListener { /*view*/_, hasFocus ->
if (hasFocus) {
loaderAutoCompleteTextView.showDropDown()
Log.d("BEAU", "LOADER DROPDOWN SHOULD BE HERE!")
} else {
loaderAutoCompleteTextView.dismissDropDown()
}
}
Вот их соответствующий XML:
<AutoCompleteTextView
android:id="@+id/driverAutoComplete"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="5dp"
android:layout_marginLeft="5dp"
android:layout_marginEnd="5dp"
android:layout_marginRight="5dp"
android:hint="@string/driver_name"
android:inputType="textCapWords"
android:imeOptions="actionNext"
app:layout_constraintBottom_toBottomOf="@+id/driverView"
app:layout_constraintEnd_toEndOf="@+id/driverView"
app:layout_constraintStart_toStartOf="@+id/verticalGuidelineEditLoad50percent"
app:layout_constraintTop_toTopOf="@+id/driverView" />
<AutoCompleteTextView
android:id="@+id/loaderAutoComplete"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="5dp"
android:layout_marginLeft="5dp"
android:layout_marginEnd="5dp"
android:layout_marginRight="5dp"
android:hint="@string/loader_name"
android:inputType="textCapWords"
android:imeOptions="actionDone"
app:layout_constraintBottom_toBottomOf="@+id/loaderView"
app:layout_constraintEnd_toEndOf="@+id/loaderView"
app:layout_constraintStart_toStartOf="@+id/verticalGuidelineEditLoad50percent"
app:layout_constraintTop_toTopOf="@+id/loaderView" />
Я не вижу никаких различий, но есть разница вLogCat.Всякий раз, когда я пропускаю фокус на loaderAutoCompleteTextView, я получаю эту ошибку:
W/InputEventReceiver: Attempted to finish an input event but the input event receiver has already been disposed.
Я полагаю, что это может быть из-за того, что он пытается отклонить выпадающий список, который никогда не создавался?Любая помощь будет высоко ценится.