java - 从 Firebase 设置 AutoCompleteTextView 材质下拉列表的选定值
问题描述
我正在使用 AutoCompleteTextView 材料下拉列表将信息添加到我的 Firebase 数据库。这工作正常,并且信息被正确捕获。
我现在想允许我的用户编辑他们之前添加到数据库中的信息。我知道如何更新普通的 EditText 视图,但是当我对 AutoCompleteTextViews 使用相同的方法时,下拉列表仅显示存储在 Firebase 中的值,并且不显示选项的完整下拉列表,因此用户可以选择一个新值如果他们愿意。
我用来显示这些下拉列表中存储在数据库中的当前选定值的代码是
String activityType = data.getStringExtra("Activity_Type");
然后我使用此代码填充下拉列表
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);
但是,如果我包含第一行代码,则此代码不会填充下拉列表。
是否有不同的方式来显示下拉列表的当前值并显示其他选项?
解决方案
要显示您应该使用的选定值:
AutoCompleteTextView editText = (AutoCompleteTextView) textInputLayout.getEditText();
editText.setAdapter(adapter);
editText.setText(value,false);
将过滤器设置为false
在下拉列表中显示整个列表而不仅仅是单个值,这一点很重要。
推荐阅读
- dataweave - 如何使用 dataweave 操作输入以获得所需的输出?
- java - vertx中数据库操作的并发问题
- angular - 如何在 Angular 中自动生成的 cookie 中设置 HTTPONLY 和 SECURE 安全标志
- node.js - Sequelize 不做表
- reactjs - Redux 在 React 的另一个 Aray 中添加了对象数组
- php - 日期过滤器未显示正确的结果
- c# - 固定大小缓冲区不支持非托管类型的任何原因?
- ruby-on-rails - 未捕获的类型错误:$(...).sortable 不是 Rails 6 中的函数
- laravel - 3 表 Laravel 迁移需要建议
- python - pip install, 如何修复 ImportError