在下拉列表中隐藏微调项目

时间:2014-05-19 18:18:55

标签: android spinner android-arrayadapter simplecursoradapter

我在一个xml布局上有多个微调器,每个都以“... PLEASE SELECT”开头。这些是我的数据库的一部分,而不是代码。当我选择任何一个微调器的下拉列表时,我想隐藏“...请选择”。

我已经阅读了很多关于这个主题的问题但它们对我不起作用,因为我使用SimpleCursorAdapter来填充我的微调器而不是ArrayAdapter。如果我使用的是ArrayAdapter,我可以覆盖getDropDownView()方法,但因为我使用的是SimpleCursorAdapter,所以我不能这样做。如果通过使用SimpleCursorAdapter并删除/隐藏微调器下拉列表的第一行有关于我的问题的答案,我找不到它们。

如何在不使用ArrayAdapter的情况下打开下拉列表时删除第一个微调器项?

1 个答案:

答案 0 :(得分:0)

您应该使用具有提示属性的EditText而不是Spinner。

例如:

<EditText
    android:id="@+id/editText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:hint="@string/edit_text_hint"
    android:cursorVisible="false"
    android:inputType="none"
    android:textIsSelectable="true"/>

在Java代码中:

editText.setOnFocusChangeListener(

    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if (!hasFocus) return;

        // Показываем диалог
        MyDialog dialog = new MyDialog();
        dialog.show(getFragmentManager(), "");
    });


public void onItemSelected(String itemName) {
    editText.setText(itemName);
}

你应该创建一个DialogFragment类MyDialog,它显示一个项目列表并调用onItemSelected回调。