Mostrar selector de fecha con el mes y el año sólo para lollipop 5.0 de android, se puede hacer en versiones inferiores, pero ¿cómo puedo hacerlo para android 5.0.

Puede agregar más detalles, por favor?
¿has probado algún código? Cuál es el problema que están enfrentando? Por favor aclarar.

OriginalEl autor Garima Mathur | 2015-05-11

3 Comentarios

  1. 5

    Esto se puede hacer mediante el establecimiento de su selector de fecha para spinner modo y llegar
    el control de giro para el Día y la ocultación mediante programación.

    Aquí es el XML (dialog_date_picker.xml):

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:padding="8dp"
        android:layout_height="match_parent">
    
        <DatePicker
            android:id="@+id/date_picker"
            android:layout_width="match_parent"
            android:calendarViewShown="false"
            android:datePickerMode="spinner"
            android:layout_weight="4"
            android:layout_height="0dp"
            />
    
        <Button
            android:id="@+id/date_time_set"
            android:layout_weight="1"
            android:layout_width="match_parent"
            android:text="Set"
            android:layout_height="0dp" />
    
    </LinearLayout>

    Aquí está el código para hacerlo.

    private Calendar mCalendar;
    ...
    
    mCalendar = Calendar.getInstance();
    
    final View dialogView = View.inflate(this, R.layout.dialog_date_picker, null);
    final AlertDialog alertDialog = new AlertDialog.Builder(this).create();
    
    DatePicker datePicker = (DatePicker) dialogView.findViewById(R.id.date_picker);
    
    datePicker.init(mCalendar.get(Calendar.YEAR),mCalendar.get(Calendar.MONTH),mCalendar.get(Calendar.DAY_OF_MONTH),null);
    
    
    LinearLayout ll = (LinearLayout)datePicker.getChildAt(0);
    LinearLayout ll2 = (LinearLayout)ll.getChildAt(0);
    ll2.getChildAt(0).setVisibility(View.INVISIBLE);
    
    dialogView.findViewById(R.id.date_time_set).setOnClickListener(new View.OnClickListener()
    {
      @Override
      public void onClick(View view)
      {    
        DatePicker datePicker = (DatePicker) dialogView.findViewById(R.id.date_picker);
    
        mCalendar = new GregorianCalendar(datePicker.getYear(),
        datePicker.getMonth(),
        datePicker.getDayOfMonth());
    
        alertDialog.dismiss();
        }
    });
    Esto oculta el mes y mantiene día del mes. Supongo que el orden en que se presentan depende de la configuración regional. A ciegas confiando en un orden fijo de elementos de interfaz de usuario no es un enfoque que yo recomendaría. Sería más fiable (aunque no totalmente) si usted combinado con @BogdanAksonenko del Resources.getSystem().getIdentifier("day", "id", "android") y escanear ll2‘s de los niños para un niño con un juego de id.
    O, bueno, me dijo que el escaneo de los niños – no hay necesidad de hacerlo manualmente obviamente, todo lo que toma es el uso de findViewById
    No olvide llamar a alertDialog.setTitle(R.string.date_of_birth);, alertDialog.setView(dialogView) y alertDialog.show();
    Por desgracia, el android:datePickerMode atributo xml sólo funciona en 21+

    OriginalEl autor Christian Abella

  2. 4

    Esto debería funcionar para todas las versiones de android (api > 11)

    datePicker.findViewById(Resources.getSystem().getIdentifier("day", "id", "android")).setVisibility(View.GONE);
    Puedo obtener NPE en Lolipop. La vista no se encuentra
    java.lang.NullPointerException: Intento de invocar el método virtual ‘void android.vista.Vista.setVisibility(int)’ en un objeto nulo de referencia. Este es el log de errores.

    OriginalEl autor Bogdan Aksonenko

  3. -3

    escribí una simple, con la esperanza de que ayudará a

    final Calendar c = Calendar.getInstance();
        mYear = c.get(Calendar.YEAR);
        mMonth = c.get(Calendar.MONTH);
        mDay = c.get(Calendar.DAY_OF_MONTH);
    
        DatePickerDialog dpd = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
                    @Override
                    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                        txtDate.setText(dayOfMonth + "-" + (monthOfYear + 1) + "-" + year);
                    }
                }, mYear, mMonth, mDay);
        dpd.show();
    Muy bien, gracias!! pero quiero que sólo mes y año también no fecha aún.
    r u leer la pregunta??? leer de nuevo y actualizar su respuesta/eliminar Qtn – Mostrar selector de fecha con el mes y el año sólo para lollipop 5.0 en android

    OriginalEl autor Nguyễn Hoàng Nam

Dejar respuesta

Please enter your comment!
Please enter your name here