我正在使用 AutoCompleteTextView 材料下拉列表将信息添加到我的 Firebase 数据库。这工作正常并且信息被正确捕获。
我现在希望允许我的用户编辑他们之前添加到数据库中的信息。我知道如何更新普通的 EditText 视图,但是当我对 AutoCompleteTextViews 使用相同的方法时,下拉列表仅显示存储在 Firebase 中的值,并且不显示选项的完整下拉列表,以便用户可以选择新值如果他们愿意的话。
我用来显示存储在这些下拉列表的数据库中的当前选定值的代码是
String activityType = data.getStringExtra("Activity_Type");
Run Code Online (Sandbox Code Playgroud)
然后我使用此代码填充下拉列表
editActivityTypeLayout = findViewById(R.id.editActivityTypeLayout);
editActivityType = findViewById(R.id.editActivityType);
final String[] type = new String[]{
"Formal Education Completed", "Other Completed", "Professional Activities", "Self-Directed Learning", "Work-Based Learning"
};
final ArrayAdapter<String> editAdapterType = new ArrayAdapter<>(
EditActivity.this,
R.layout.dropdown_item,
type
);
editActivityType.setAdapter(editAdapterType);
Run Code Online (Sandbox Code Playgroud)
但是,如果我包含第一行代码,则此代码不会填充下拉列表。
是否有不同的方式来显示下拉列表的当前值并显示其他选项?
java android android-textinputlayout material-ui material-components-android
我正在使用 Material 在 android studio 中使用 Java 设计一个带有下拉列表的表单。
我想将用户从下拉列表中所做的选择保存到一个字符串中,这样我就可以将其保存到 Firebase,但是当我尝试记录结果时,它说选择为空。
有谁知道我如何捕获用户从这种类型的下拉菜单中选择的内容?我以前确实有一个可以工作的 Spinner,但这似乎并没有以相同的方式工作。
我的XML代码如下
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/cpdTypeLayout"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:hint="Activity Type">
<AutoCompleteTextView
android:id="@+id/cpdType"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="none" />
</com.google.android.material.textfield.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)
我的 AddAdactivity.java 代码是
//CPD TYPE DROPDOWN MENU
cpdTypeLayout = findViewById(R.id.cpdTypeLayout);
cpdType = findViewById(R.id.cpdType);
String[] type = new String[]{
"Formal Education Completed", "Other Completed", "Professional Activities", "Self-Directed Learning", "Work-Based Learning"
};
ArrayAdapter<String> adapterType = new ArrayAdapter<>(
AddActivity.this,
R.layout.dropdown_item,
type
);
cpdType.setAdapter(adapterType);
cpdType.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int …Run Code Online (Sandbox Code Playgroud) java android android-spinner android-textinputlayout material-components-android