android - pedir - Cuadro de diálogo de selección de fecha y hora
mostrar hora y fecha en android studio (3)
Quiero crear un cuadro de diálogo que puede seleccionar la hora y la fecha al mismo tiempo .
Sé que no hay un widget predeterminado que pueda hacer eso en Android . También sé que hay proyectos de código abierto sobre cómo hacer personal similar. El problema en este proyecto es que en el diálogo tenemos dos botones: datePicker y timePicker .
Y eso no es lo que quiero hacer, quiero que el selector de fecha y hora aparezca al mismo tiempo.
Así que creo que los dos problemas principales serán:
- Primero haga que el selector de fecha y hora aparezca en el mismo cuadro de diálogo.
- Y el segundo problema será cambiar la apariencia del selector de fecha y hora (el color naranja).
El primer problema fue resuelto por Bhavesh. Esto es lo que obtengo:
El problema ahora es que quiero cambiar todo el color de la barra azul al color naranja .
Agregué android:calendarViewShown="false"
para eliminar el calendario a la derecha :) Gracias Bhavesh y cambié el tema a HOLO
Esto es lo que obtengo:
Puedes descargar el código (eso es lo mejor que puedo hacer). Puedes descargar desde here .
Hay muchas soluciones disponibles, hay una de ellas, me gusta este método simple:
String mDateTime;
void getDateTime(){
final Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
final int hour = c.get(Calendar.HOUR_OF_DAY);
final int minute = c.get(Calendar.MINUTE);
mDateTime = "";
new DatePickerDialog(
mContext, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
mDateTime = year +"-"+ month +"-"+ dayOfMonth;
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
new TimePickerDialog(mContext, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
mDateTime+=" "+hourOfDay+":"+minute;
}
}, hour, minute, false).show();
}
},500);
}
}, year, month, day).show();
}
Primero haga que el selector de fecha y hora aparezca en el mismo cuadro de diálogo
Aquí puedo ayudarlo con algunas TimePicker
: puede crear un diseño que consta de un DatePicker
y un TimePicker
en un LinearLayout
con la orientación establecida en vertical.
custom_dialog.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<DatePicker
android:id="@+id/datePicker1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</DatePicker>
<TimePicker
android:id="@+id/timePicker1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</TimePicker>
</LinearLayout>
Luego usa este diseño para crear tu diálogo.
Dialog dialog = new Dialog(mContext);
dialog.setContentView(R.layout.custom_dialog);
dialog.setTitle("Custom Dialog");
Para reaccionar ante el usuario que interactúa con su TimePicker
, haga algo como esto:
TimePicker tp = (TimePicker)dialog.findViewById(R.id.timepicker1);
tp.setOnTimeChangedListener(myOnTimechangedListener);
Para obtener los valores del Selector de fecha y hora cuando el usuario haya terminado de configurarlos, agregue un botón Aceptar en el cuadro de diálogo y luego lea los valores de fecha y hora del Selector de fecha y hora cuando el usuario presione Aceptar.
Para hacer algo que se vea exactamente como en sus capturas de pantalla, le recomiendo que haga todo a la medida con su propia lógica.
Para cambiar los colores de la barra azul intente lo siguiente.
Defina su propio tema de la siguiente manera, que amplía THEME_HOLO_DARK
Intente lo siguiente:
<style name="testo" parent="@android:style/Widget.DeviceDefault.DatePicker">
<item name="android:divider">@drawable/MyDivider</item>
</style>
Verifique la siguiente aplicación de change-basic-theme-color-of-android-application