当点击下拉菜单时显示自定义对话框

3

目前,我将旋转器设置为对话框模式。

        <Spinner
            android:spinnerMode="dialog"
            android:id="@+id/genderSpinner"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:entries="@array/gender_array"
            android:prompt="@string/gender_prompt" />

它将显示类似于以下内容:

enter image description here

然而,有时候我想控制显示何种类型的对话框。例如,当单击微调控件时,我想显示带有日期选择器的对话框。

请注意,Google日历确实拥有这样的控件。

enter image description here

我可以知道如何实现这个吗?

2个回答

22

不要使用Spinner,而是使用TextView,并给其安装一个点击监听器。

为了使TextView看起来像Spinner,以下是技巧:

        <TextView
            android:id="@+id/date"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="0.72"
            android:text="Aug 20, 2012"
            style="@android:style/Widget.Holo.Light.Spinner" />
或者
        <TextView
            android:id="@+id/date"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="0.72"
            android:text="Aug 20, 2012"
            style="@android:style/Widget.Holo.Spinner" />

最好使用 style="@style/Widget.AppCompat.Spinner" - Lahiru Chandima

1

我认为你使用Spinner会遇到麻烦。因为Spinner的概念是期望显示一个供用户选择的项目列表。

相反,我建议你使用一个按钮来弹出包含DatePicker的自定义对话框。如果你愿意,甚至可以正确地将其连接起来,以便在按钮上显示所选日期的文本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接