Comment afficher le sélecteur de date pour Android avec seulement des champs de mois et d'année?

Je souhaite désactiver l'option de sélection de jour sur le sélecteur de date Android sdk. Toute configuration xml facile serait la meilleure

  • Le gestionnaire SDK d'Android SSL s'arrête de manière incorrecte
  • Android Facebook SDK autorise les méthodes de dialogue à chaque fois
  • Les éléments requis n'ont pas pu être trouvés lors de l'installation du plugin ADT
  • Localisation de SDK Android Studio
  • Ndk-build ne parvient pas à créer une bibliothèque audio Superpowered après la dernière mise à jour NDK
  • Le gestionnaire SDK ne trouve pas java
  • Emplacement de SDK Android
  • Mise à jour du SDK d'Android: "Un dossier n'a pas été déplacé".
  • 7 Solutions collect form web for “Comment afficher le sélecteur de date pour Android avec seulement des champs de mois et d'année?”

    Je viens d'avoir publié un nouveau cadre de sélection de date qui vous permet de créer un sélecteur de date personnalisé. J'ai également fourni quelques exemples de sélection de date comme celui que vous recherchez. J'espère que cela fonctionne pour vous.

    Le code peut être trouvé ici: https://github.com/bendemboski/DateSlider

    MISE À JOUR 06/2014: Cette bibliothèque a été développée en 2010 et n'a pas été mise en place depuis 2011. Il est donc très probable que cette date soit dépassée.

    Il est possible de pirater l'instance DatePicker en utilisant la réflexion. De cette façon, vous pouvez accéder à l'instance NumberPicker qui représente le jour dans DatePicker:

    datePicker = (DatePicker) findViewById(R.id.expiration_date); try { Field f[] = datePicker.getClass().getDeclaredFields(); for (Field field : f) { if (field.getName().equals("mDayPicker")) { field.setAccessible(true); Object dayPicker = new Object(); dayPicker = field.get(datePicker); ((View) dayPicker).setVisibility(View.GONE); } } } catch (SecurityException e) { Log.d("ERROR", e.getMessage()); } catch (IllegalArgumentException e) { Log.d("ERROR", e.getMessage()); } catch (IllegalAccessException e) { Log.d("ERROR", e.getMessage()); } 

    Parlant de réflexion, cela fonctionne dans Android 4.4.2 SDK

     "mDaySpinner" 

    au lieu

     "mDayPicker" 

    Je pense que c'est la meilleure solution

      datePicker.findViewById(Resources.getSystem().getIdentifier("day", "id", "android")).setVisibility(View.GONE); 

    EDIT: selon le commentaire ci-dessous, je ne suivrais plus cette réponse.

    Je ne pense pas que vous pouvez le faire avec le sélecteur de date par défaut. Vous devrez le créer à partir d'éléments d'interface UI basiques. Mais au lieu d'aller à ce problème, pourquoi ne pas utiliser un meilleur élément de bibliothèque comme cette magnifique roue iPhone-esque: http://code.google.com/p/android-wheel/ Je ne l'ai pas encore utilisé, mais Je prévois!

    Cela fonctionne bien en version 2.2. Mais le titre de la boîte de dialogue n'est pas modifié.

     for (Field datePickerDialogField : datePickerDialogFields) { if (datePickerDialogField.getName().equals("mDatePicker")) { datePickerDialogField.setAccessible(true); DatePicker datePicker = (DatePicker) datePickerDialogField.get(datePickerDialog); Field datePickerFields[] = datePickerDialogField.getType().getDeclaredFields(); for (Field datePickerField : datePickerFields) { if ("mDayPicker".equals(datePickerField.getName())) { datePickerField.setAccessible(true); Object dayPicker = new Object(); dayPicker = datePickerField.get(datePicker); ((View) dayPicker).setVisibility(View.GONE); } } } } 

    Vous pouvez utiliser le widget https://github.com/SimonVT/android-datepicker pour une compatibilité annulée et faire en sorte que le jour se déplace 'disparu'

     <net.simonvt.numberpicker.NumberPicker android:id="@+id/day" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="16dip" android:layout_marginRight="16dip" android:focusable="true" android:focusableInTouchMode="true" android:visibility="gone" /> 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.