我有以下的AutoCompleteTextView:
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/offering_type_dropdown_layout"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/date_card_spacing"
android:layout_marginStart="4dp"
app:layout_constraintStart_toEndOf="@+id/offering_details_header_image"
app:layout_constraintEnd_toStartOf="@+id/offering_details_date_layout"
app:layout_constraintTop_toTopOf="parent"
android:hint="@string/offering_type_hint">
<AutoCompleteTextView
android:id="@+id/offering_details_type_dropdown"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:inputType="textNoSuggestions"
android:clickable="false"
android:focusable="false"
android:focusableInTouchMode="false"
android:cursorVisible="false"/>
</com.google.android.material.textfield.TextInputLayout>
在我的Activity的onCreate
方法中,我像这样填充AutoCompleteTextView:
String[] TYPES = new String[] {getString(R.string.burnt_offering), getString(R.string.meal_offering), getString(R.string.peace_offering), getString(R.string.sin_offering)};
ArrayAdapter<String> adapter = new ArrayAdapter<>(OfferingInputActivity.this, R.layout.offering_types_dropdown, TYPES);
mOfferingTypeCombo.setAdapter(adapter);
然后我使用 Room 数据库填充视图,并预先选择其中一个值。在 Room 回调中,我执行以下操作:
然后我使用 Room 数据库填充视图,并预先选定其中一个值。在 Room 回调中,我执行以下操作:
mOfferingTypeCombo.setText(getString(R.string.meal_offering)), false);
初始运行时一切正常,并且下拉菜单显示正确:
现在我将设备旋转到横向。 执行与上面完全相同的代码,但是这一次,下拉框仅显示当前选择:
因为某种原因,适配器中的所有其他条目都消失了。 我尝试了一些方法,例如在设置适配器之前使用 setAdapter(null)
但没有成功。有人能告诉我为什么旋转后即使执行完全相同的代码后,下拉菜单也会缺少条目吗?