【发布时间】:2020-12-04 10:46:11
【问题描述】:
我有以下 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 回调中,我这样做:
mOfferingTypeCombo.setText(getString(R.string.meal_offering)), false);
在初始运行时一切正常,下拉菜单显示正确:
现在我将设备旋转到横向。执行与上面完全相同的代码但这一次,下拉框只显示当前选择:
由于某种原因,适配器中的所有其他条目都消失了。在设置适配器之前,我已经尝试过诸如setAdapter(null) 之类的技巧,但没有成功。 有人可以告诉我为什么在轮换后,即使执行了完全相同的代码,下拉菜单也缺少条目?
【问题讨论】:
-
谢谢,你是对的。我的解决方法是在解决方案中。
标签: android material-components-android android-textinputlayout