我在一个xml布局上有多个微调器,每个都以“... PLEASE SELECT”开头。这些是我的数据库的一部分,而不是代码。当我选择任何一个微调器的下拉列表时,我想隐藏“...请选择”。
我已经阅读了很多关于这个主题的问题但它们对我不起作用,因为我使用SimpleCursorAdapter
来填充我的微调器而不是ArrayAdapter
。如果我使用的是ArrayAdapter
,我可以覆盖getDropDownView()
方法,但因为我使用的是SimpleCursorAdapter
,所以我不能这样做。如果通过使用SimpleCursorAdapter
并删除/隐藏微调器下拉列表的第一行有关于我的问题的答案,我找不到它们。
如何在不使用ArrayAdapter
的情况下打开下拉列表时删除第一个微调器项?
答案 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回调。