private Calendar mCalendar;
mCalendar = Calendar.getInstance();// Initialize Calendar
dialog_date_picker.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/rounded_corners"
android:orientation="vertical"
android:padding="8dp">
<DatePicker
android:id="@+id/date_picker"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="4"
android:calendarViewShown="false"
android:datePickerMode="spinner" />
<Button
android:id="@+id/date_time_set"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="@color/colorPrimary"
android:text="Set"
android:textColor="@color/colorWhite" /></LinearLayout>
DialogMethod llamada en Click:
private void ExpiryDialog() {
System.out.println("Inside Dialog Box");
final Dialog dialog = new Dialog(context);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.dialog_date_picker);
dialog.show();
final DatePicker datePicker = (DatePicker) dialog.findViewById(R.id.date_picker);
date_time_set = (Button) dialog.findViewById(R.id.date_time_set);
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(1).setVisibility(View.INVISIBLE);
date_time_set.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view){
dialog.dismiss();
Integer month = datePicker.getMonth()+1;
Integer year = datePicker.getYear();
expMonth = (month.toString().length() == 1 ? "0"+month.toString():month.toString());
expYear = year.toString();
etExpiryDate.setText(expMonth + "/" + expYear);
}
});
}
Este código funciona y oculta el día en un DatePicker, por lo que puede mostrar la fecha de caducidad de las tarjetas. ¡¡Disfrutar!!
Esta es una recomendación vil. La respuesta más confiable es tirar la tuya. Incluso si quieres jugar juegos de script kiddie como los que se proponen aquí, no uses el reflejo, obtén los widgets particulares a través de 'getDatePicker()' y 'findViewById()' y establece su visibilidad de esa manera. Ambos enfoques hacen suposiciones sobre implementaciones internas que pueden no ser válidas en versiones de sistema operativo Android o modificaciones de firmware OEM, pero al menos el enfoque 'findViewById()' hará menos suposiciones (y probablemente se ejecute más rápido). – CommonsWare
@CommonsWare oh bien, gracias por la sugerencia –
solo funciona desde las versiones 3.2 y posteriores de Android –