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

  • Android: streaming de la caméra en tant que mjpeg
  • Télécharger et télécharger le profil des tarifs dans Android
  • Scanner média Android: comment puis-je supprimer des fichiers?
  • Chaque construction NDK est une reconstruction complète
  • Comment démarrer une intention d'un OnClickListener
  • FFMPEG Fade in et Fade out for Overlay
  • API Google Maps, dois-je acheter?
  • Android: Question sur les Bitmaps, l'utilisation de la mémoire et la mise à l'échelle
  • Dialogue Android transparent
  • Comment faire défiler horizontalement RecyclerView par programme?
  • Quel est le meilleur remplacement pour une galerie dans Android?
  • Android - L'intention est-elle conservée pendant les activités récréatives?
  • 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.