Je souhaite modifier la couleur par défaut de la boîte de dialogue du sélecteur de date/heure dans Android, afin qu'elle corresponde au thème de mon application. J'ai cherché la solution sur Google, mais je n'ai pas trouvé de solution.
Ce que je faisais était de créer un nouveau style:
<style name="datepicker" parent="@Android:style/Widget.DeviceDefault.DatePicker">
<!---TODO-->
<item name="Android:focusedMonthDateColor">@Android:color/holo_red_dark</item>
</style>
Je ne sais pas quels sont les attributs disponibles pour le dialogue du sélecteur de date. Ce serait formidable si quelqu'un pouvait poster un lien à ce sujet
et après avoir ajouté le style que je l'appelais dans mon style principal
<item name="Android:datePickerStyle">@style/datepicker</item>
Malheureusement, cela n'a pas du tout fonctionné pour moi.
Essaye ça. C'est le moyen le plus simple et le plus efficace
<style name="datepicker" parent="Theme.AppCompat.Light.Dialog">
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primary_dark</item>
<item name="colorAccent">@color/primary</item>
</style>
appeler comme ça
button5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
DialogFragment dialogfragment = new DatePickerDialogTheme();
dialogfragment.show(getFragmentManager(), "Theme");
}
});
public static class DatePickerDialogTheme extends DialogFragment implements DatePickerDialog.OnDateSetListener{
@Override
public Dialog onCreateDialog(Bundle savedInstanceState){
final Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int day = calendar.get(Calendar.DAY_OF_MONTH);
//for one
//for two
DatePickerDialog datepickerdialog = new DatePickerDialog(getActivity(),
AlertDialog.THEME_DEVICE_DEFAULT_DARK,this,year,month,day);
//for three
DatePickerDialog datepickerdialog = new DatePickerDialog(getActivity(),
AlertDialog.THEME_DEVICE_DEFAULT_LIGHT,this,year,month,day);
// for four
DatePickerDialog datepickerdialog = new DatePickerDialog(getActivity(),
AlertDialog.THEME_HOLO_DARK,this,year,month,day);
//for five
DatePickerDialog datepickerdialog = new DatePickerDialog(getActivity(),
AlertDialog.THEME_HOLO_LIGHT,this,year,month,day);
//for six
DatePickerDialog datepickerdialog = new DatePickerDialog(getActivity(),
AlertDialog.THEME_TRADITIONAL,this,year,month,day);
return datepickerdialog;
}
public void onDateSet(DatePicker view, int year, int month, int day){
TextView textview = (TextView)getActivity().findViewById(R.id.textView1);
textview.setText(day + ":" + (month+1) + ":" + year);
}
}
suivez cela, il vous donnera tous les types de style de sélecteur de date (copie de ceci)
http://www.Android-examples.com/change-datepickerdialog-theme-in-Android-using-dialogfragment/
Pour changer les couleurs DatePicker
(mode calendrier) au niveau de l'application, définissez les propriétés ci-dessous.
<style name="MyAppTheme" parent="Theme.AppCompat.Light">
<item name="colorAccent">#ff6d00</item>
<item name="colorControlActivated">#33691e</item>
<item name="Android:selectableItemBackgroundBorderless">@color/colorPrimaryDark</item>
<item name="colorControlHighlight">#d50000</item>
</style>
Voir http://www.zoftino.com/Android-datepicker-example pour d'autres styles personnalisés DatePicker
Calendar calendar = Calendar.getInstance();
DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(), R.style.DatePickerDialogTheme, new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
Calendar newDate = Calendar.getInstance();
newDate.set(year, monthOfYear, dayOfMonth);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd-MM-yyyy");
String date = simpleDateFormat.format(newDate.getTime());
}
}, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH));
datePickerDialog.show();
Et utiliser ce style
<style name="DatePickerDialogTheme" parent="Theme.AppCompat.Light.Dialog">
<item name="colorAccent">@color/colorPrimary</item>
</style>
Comme les attributs AlertDialog.THEME
sont obsolètes, lors de la création de DatePickerDialog
, vous devez passer l’un de ces paramètres pour int themeResId
(J'utilise React Native; targetSdkVersion 22). J'essaie de modifier l'aspect d'une boîte de dialogue de sélection de date. La réponse acceptée n'a pas fonctionné pour moi, mais cela a fonctionné. J'espère que cet extrait aidera certains d'entre vous.
<style name="CalendarDatePickerDialog" parent="Theme.AppCompat.Light.Dialog">
<item name="colorAccent">#6bf442</item>
<item name="Android:textColorPrimary">#6bf442</item>
</style>