it-swarm.com.de

Android-Spinner mit Datumsauswahl, wie Google Kalender App

Ich versuche, ein Textfeld zu erhalten, das wie ein Drehfeld aussieht, um ein Datumsauswahldialogfeld zu aktivieren. Dies geschieht sowohl in der Google Kalender-App als auch in der Kontakt-App (für das Geburtsdatum) von ICS. Muss ich einen Spinner verwenden, und wenn ja, wie kann ich die Eingabeansicht in eine Datumsauswahl ändern? Oder wenn nicht, wie bekomme ich eine Textansicht mit dem kleinen Dreieck, das normalerweise auf einen Spinner hinweist?

34
Dash

Twaddingtons Kommentar zu seiner Antwort ist tatsächlich der richtige Ansatz. .__ Sie müssen eine Textansicht erstellen und den Stil anwenden 

style="@Android:style/Widget.DeviceDefault.Light.Spinner"

Anschließend können Sie in der Textansicht einen Klicklistener erstellen und damit einen DatePickerDialog öffnen. Dies kann wie folgt durchgeführt werden: https://stackoverflow.com/a/8127571/332738 (Wenn Sie dem Beispiel folgen, denken Sie daran, einen Standardkonstruktor zu DatePickerDialogFragment hinzuzufügen, damit Ihre App nicht abstürzt auf drehen)

61
codinguser

Ich weiß nicht, ob du das noch brauchst. In der Kontakte-App wird dies mit folgendem erreicht:

<Button
    ...
    style="?android:attr/spinnerStyle"
    ... />

Dies sollte auf allen Android-Versionen funktionieren, da es seit der API-Ebene 1 verfügbar ist: http://developer.Android.com/reference/Android/R.attr.html#spinnerStyle

21
Scirocco

Ich bin nicht sicher, ob Sie dies wünschen, aber Sie sollten in der Lage sein, das Date Picker-Tutorial auf der Android-Entwicklerwebsite zu befolgen.

Auch die DatePicker und DatePickerDialog - Klassen könnten einen Blick wert sein.

8
twaddington

Ich würde unter dem Thema für Spinner wie Google Kontakte bevorzugen.

<resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="Android:spinnerStyle">@style/AppTheme.Form.Spinner</item>
        <item name="Android:spinnerItemStyle">@style/AppTheme.Form.Spinner.Item</item>
    </style>

    <!-- Spinner Styles -->
    <style name="AppTheme.Form.Spinner" parent="Widget.AppCompat.Spinner">
        <item name="Android:paddingRight">0dp</item>
        <item name="Android:paddingEnd">0dp</item>
    </style>
    <style name="AppTheme.Form.Spinner.Item" parent="Widget.AppCompat.EditText">
        <item name="Android:clickable">false</item>
    </style>
</resources>
0
Dipen Dedania