Autore Topic: rimuovere Calendar da Datepicker utilizzando le api 15  (Letto 1166 volte)

Offline cabron

  • Nuovo arrivato
  • *
  • Post: 14
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy sII
  • Sistema operativo:
    Mac Os X 10.6.8 (Snow Leopard)
rimuovere Calendar da Datepicker utilizzando le api 15
« il: 17 Maggio 2012, 09:38:08 CEST »
0
Ciao a tutti, è la prima volta che scrivo sul forum, di solito leggendo i vecchi thread arrivo a risolvere i problemi, ma questa volta non trovo soluzione..  :-( ecco il mio problema:
Da una activity ho un bottone che al click mi visualizza una finestra di dialogo personalizzata (trovata su code.google) che contiene qualche bottone, un ViewSwitcher che permette di passare da un DatePicker  a un TimePicker e viceversa.
Codice (Java): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/DateTimePicker"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:fitsSystemWindows="true"
    android:padding="5dip" >

    <LinearLayout
        android:id="@+id/ViewSwitchButtons"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="5dip" >
        <Button
            android:id="@+id/SwitchToDate"
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:enabled="false"
            android:text="Set date" />
        <Button
            android:id="@+id/SwitchToTime"
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Set time" />
    </LinearLayout>

    <ViewSwitcher
        android:id="@+id/DateTimePickerVS"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inAnimation="@android:anim/fade_in"
        android:outAnimation="@android:anim/fade_out"
        android:layout_below="@+id/ViewSwitchButtons" >

        <LinearLayout
            android:id="@+id/DateLayout"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:fillViewport="true" >

            <DatePicker
                android:id="@+id/DatePicker"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dip"
                android:layout_marginRight="5dip" />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/TimeLayout"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:fillViewport="true" >

            <TimePicker
                android:id="@+id/TimePicker"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dip"
                android:layout_marginRight="5dip" />
        </LinearLayout>
    </ViewSwitcher>

    <LinearLayout
        android:id="@+id/ControlButtons"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/DateTimePicker"
        android:paddingTop="185dip" >

        <Button
            android:id="@+id/SetDateTime"
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@android:string/ok" />

        <Button
            android:id="@+id/ResetDateTime"
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Reset" />

        <Button
            android:id="@+id/CancelDialog"
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@android:string/cancel" />
    </LinearLayout>

</RelativeLayout>

Finché nel manifest avevo impostato solo min sdk = 7 il dataPicker era perfetto, adesso che ho impostato come target le api 15 su dispositivi ics ho problemi di visualizzazione, in particolare con questa versione di api il DatePicker contiene oltre allo slider anche un Calendario che "rovina" il layout rendendolo inutilizzabile. Su dispositivi GB invece il layout viene visto senza alcun problema.

Guardando la documentazione ho scoperto che DatePicker ha un attributo
Codice (XML): [Seleziona]
android:calendarViewShown="false" ma se lo scrivo nel mio xml eclipse mi restituisce un errore.
Codice: [Seleziona]
error: No resource identifier found for attribute 'calendarViewShown' in package  'android'Avete qualche idea per risolvere questo problema? è il mio primo post in cui chiedo aiuto quindi spero di esser stato abbastanza dettagliato, in caso mancasse qualche informazione mi scuso in anticipo!
Grazieπ

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:rimuovere Calendar da Datepicker utilizzando le api 15
« Risposta #1 il: 17 Maggio 2012, 09:49:51 CEST »
0
Ciao,
La tua applicazione che target ha? Dovresti metterlo a 15 per poter utilizzare quell'attributo ;)

Offline cabron

  • Nuovo arrivato
  • *
  • Post: 14
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy sII
  • Sistema operativo:
    Mac Os X 10.6.8 (Snow Leopard)
Re:rimuovere Calendar da Datepicker utilizzando le api 15
« Risposta #2 il: 17 Maggio 2012, 10:45:49 CEST »
0
il target è 15
se imposto un target più basso il datpicker ha la la visualizzazione normale, però perdo "il tema" ics.

EDIT: effettivamente anche se avevo impostato nel manifest target 15 dalle proprietà del progetto era ancora target 7, adesso l'attributo funziona!
però ho un'altra domanda, se eseguo l'applicazione su un dispositivo con api minori di 15 cosa succede?
« Ultima modifica: 17 Maggio 2012, 11:16:36 CEST da cabron »

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:rimuovere Calendar da Datepicker utilizzando le api 15
« Risposta #3 il: 17 Maggio 2012, 11:29:41 CEST »
0
EDIT: effettivamente anche se avevo impostato nel manifest target 15 dalle proprietà del progetto era ancora target 7, adesso l'attributo funziona!
però ho un'altra domanda, se eseguo l'applicazione su un dispositivo con api minori di 15 cosa succede?

Se nelle tue classi Java non usi delle API introdotte nell'api level 15 non hai problemi.
I tag xml invece vengono semplicemente ignorati nelle versioni inferiori ;)

Offline cabron

  • Nuovo arrivato
  • *
  • Post: 14
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy sII
  • Sistema operativo:
    Mac Os X 10.6.8 (Snow Leopard)
Re:rimuovere Calendar da Datepicker utilizzando le api 15
« Risposta #4 il: 17 Maggio 2012, 12:04:16 CEST »
0
perfetto, allora adesso mi rimane da risolvere "solo" i problemi di layout dovuti all'altezza dello spinner che si sovrappone ai bottoni inferiori..
Grazie mille!