2012-02-14 3 views
9

Как можно получить DatePickerDialog с помощью темы Holo Light?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, приложение работает на divice с Android версии 3.2.

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

Благодарим за помощь.

+0

положить андроида: тема = "@ андроид: стиль/Theme.Holo.Light" в вашей деятельности в теге Manifest.xml –

+0

@PadmaKumar спасибо вы за комментарий. Я попробую то, что вы предложили. Но в целом, я хотел бы использовать тему с родительским андроидом: Theme.Holo.Light.DialogWhenLarge для этой активности. – Julia

+0

@PadmaKumar Я поставил android: theme = "@ android: style/Theme.Holo.Light" в теге активности в manifest.xml и ничего не изменил (я думаю, потому что я использую «ContextThemeWrapper»). – Julia

ответ

16

The 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); 

Это работает для меня таким образом.

+0

Является ли android.R.style.Theme_Holo_Light_Dialog_NoActionBar доступным для версий <2.0? –

+0

@ Yume117: Не было добавлено темы Holo для Honeycomb 3.0 – SuperShalabi

2

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

Адрес such one.

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); 
+0

Хотя этот ответ может быть правильным, лучше добавить некоторое объяснение.Если предоставленная ссылка станет недействительной, в данный момент ответ не будет иметь никакого смысла. – Wouter

1

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

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(); 
Смежные вопросы