单击微调器时显示自定义对话框

时间:2012-08-29 02:54:16

标签: android

目前,我有dialog模式的微调器。

        <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 个答案:

答案 0 :(得分: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" />

答案 1 :(得分:1)

我认为你在使用Spinner工作时会遇到麻烦。 Spinner的概念是这样的,它期望显示项目列表供用户选择。

我认为你应该使用一个Button来弹出一个包含DatePicker的自定义对话框,而不是Spinner。您甚至可以正确连接它以将所选日期显示为按钮上的文本。