DatePickerDialog с темой Холо Лайт? - PullRequest
9 голосов
/ 14 февраля 2012

Как можно получить DatePickerDialog с темой Holo Light?

При создании DatePickerDialog следующим образом:

 DatePickerDialog dpd = new DatePickerDialog(new ContextThemeWrapper(this,
                    android.R.style.Theme_Holo_Light_Dialog_NoActionBar), 
    new DateListener(v), mTime.year, mTime.month, mTime.monthDay);

или с темой android.R.style.Theme_Holo_Light или android.R.style.Theme_Holo_Light_Dialog, Я получаю дату выбора со стандартным названием и стандартными кнопками.Я тоже пытался использовать пользовательскую тему с голографическим родителем, но она тоже не работала.Кажется, что он работает с темой android.R.style.Theme_Holo, но в результате получается темный фон (как и ожидалось), но я бы хотел иметь светлый.

Приложение android.jar имеет версию 14, приложениеработает на устройстве с версией Android 3.2.

Я видел пример здесь: http://as400samplecode.blogspot.com/2011/10/android-datepickerdialog.html,, который показывает DatePickerDialog с темой голографического освещения, как я хотел бы иметь.Я не знаю, почему это не работает с моей настройкой.

Спасибо за помощь.

Ответы [ 3 ]

18 голосов
/ 23 мая 2012

У DatePickerDialog есть конструктор, который принимает тему

DatePickerDialog(Context context, int theme, DatePickerDialog.OnDateSetListener callBack, int year, int monthOfYear, int dayOfMonth)

просто обновите свой код, чтобы включить нужный вам стиль без необходимости ContextThemeWrapper

DatePickerDialog dpd = new DatePickerDialog(this,
                android.R.style.Theme_Holo_Light_Dialog_NoActionBar, 
new DateListener(v), mTime.year, mTime.month, mTime.monthDay);

У меня так работает.

3 голосов
/ 09 мая 2015

Прочитайте этот пример Android DatePickerDialog , который включает, как использовать различные темы в DatePickerDialog .

Вот такой такой .

DatePickerDialog Конструктор, поддерживающий определение темы.

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);  
return new DatePickerDialog(getActivity(), AlertDialog.THEME_HOLO_DARK, this, year, month, day); 
2 голосов
/ 18 ноября 2016

Для стиля материала это сработало для меня:

int datePickerThemeResId = 0;
if (android.os.Build.VERSION.SDK_INT >= 21) {
    datePickerThemeResId = android.R.style.Theme_Material_Light_Dialog;
}
new DatePickerDialog(
    context,
    datePickerThemeResId,
    (view, year, month, dayOfMonth) -> {},
    year,
    month,
    day
).show();
...