从 Firebase 设置 AutoCompleteTextView 材质下拉列表的选定值

smo*_*ose 3 java android android-textinputlayout material-ui material-components-android

我正在使用 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)

但是,如果我包含第一行代码,则此代码不会填充下拉列表。

是否有不同的方式来显示下拉列表的当前值并显示其他选项?

Gab*_*tti 12

要显示所选值,您应该使用:

   AutoCompleteTextView editText = (AutoCompleteTextView) textInputLayout.getEditText();

   editText.setAdapter(adapter);
   editText.setText(value,false);
Run Code Online (Sandbox Code Playgroud)

false将过滤器设置为在下拉列表中显示整个列表而不仅仅是单个值非常重要。