2012-02-14 111 views
9

如何獲得Holo Light主題的DatePickerDialog?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_Lightandroid.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與全光主題,我想要的方式。我不知道爲什麼它不適用於我的設置。

謝謝你的幫助。

+0

放機器人:主題= 「@安卓風格/ Theme.Holo.Light」 在您的活動標籤中的manifest.xml – 2012-02-14 14:45:22

+0

@PadmaKumar謝謝你的評論。我會嘗試你的建議。但一般來說,我想使用父主題android:Theme.Holo.Light.DialogWhenLarge爲主題。 – Julia 2012-02-14 14:50:01

+0

@PadmaKumar我把android:theme =「@ android:style/Theme.Holo.Light」放在manifest.xml的activity標記中,它沒有改變任何東西(我想,因爲我使用了'ContextThemeWrapper')。 – Julia 2012-02-14 14:56:40

回答

16

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? – 2013-04-11 07:11:28

+0

@ Yume117:沒有霍洛主題被添加到蜂窩3.0 – SuperShalabi 2013-06-16 12:16:46

2

閱讀此Android DatePickerDialog示例代碼其中包括如何使用不同主題DatePickerDialog

這是such one

DatePickerDialog支持定義Theme的構造函數。

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 2015-05-09 07:56:59

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(); 
相關問題