2012-02-14 23 views
9

Làm thế nào để có thể có được một DatePickerDialog với chủ đề Holo Light?DatePickerDialog với chủ đề Holo Light?

Khi tạo một DatePickerDialog như sau:

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

hoặc với chủ đề android.R.style.Theme_Holo_Light hoặc android.R.style.Theme_Holo_Light_Dialog, tôi nhận được một bảng chọn ngày với một tiêu đề tiêu chuẩn và các nút tiêu chuẩn. Tôi đã cố gắng sử dụng một chủ đề tùy chỉnh với một phụ huynh holo ánh sáng quá, nhưng nó đã không làm việc hoặc. Dường như làm việc với chủ đề android.R.style.Theme_Holo, nhưng kết quả là một nền tối (như mong đợi), nhưng tôi muốn có một ánh sáng.

Ứng dụng android.jar của phiên bản 14, ứng dụng đang chạy trên một divice với phiên bản Android 3.2.

Tôi đã xem một ví dụ tại đây: http://as400samplecode.blogspot.com/2011/10/android-datepickerdialog.html, hiển thị DatePickerDialog với chủ đề ánh sáng holo, cách tôi muốn có nó. Tôi không biết tại sao nó không hoạt động với thiết lập của tôi.

Cảm ơn bạn đã trợ giúp.

+0

đặt android: theme = "@ android: phong cách/Theme.Holo.Light" trong thẻ hoạt động của bạn trong manifest.xml –

+0

@PadmaKumar cảm ơn bạn cho nhận xét. Tôi sẽ cố gắng những gì bạn đề nghị. Nhưng nói chung, tôi muốn sử dụng một chủ đề với cha mẹ android: Theme.Holo.Light.DialogWhenLarge cho hoạt động. – Julia

+0

@PadmaKumar Tôi đặt android: theme = "@ android: style/Theme.Holo.Light" trong thẻ hoạt động trong tệp manifest.xml và nó không thay đổi bất cứ điều gì (tôi nghĩ, bởi vì tôi sử dụng 'ContextThemeWrapper'). – Julia

Trả lời

16

Các DatePickerDialog có một constructor mà chấp nhận một chủ đề

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

chỉ cập nhật mã của bạn để bao gồm các phong cách bạn muốn mà không cần một ContextThemeWrapper

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

Đó là làm việc đối với tôi như vậy.

+0

Android.R.style.Theme_Holo_Light_Dialog_NoActionBar có sẵn cho các phiên bản <2.0 không? –

+0

@ Yume117: Không có Chủ đề Holo nào được thêm vào Honeycomb 3.0 – SuperShalabi

2

đọc này Android DatePickerDialog mã ví dụ trong đó bao gồm làm thế nào để sử dụng Themes khác nhau trong DatePickerDialog.

Đây là such one.

DatePickerDialog Constructor hỗ trợ xác định Chủ đề.

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

Trong khi câu trả lời này có thể đúng, tốt nhất là thêm một số giải thích.Tôi f liên kết được cung cấp không hợp lệ, câu trả lời sẽ không còn ý nghĩa nữa vào lúc này. – Wouter

1

Đối với phong cách Chất liệu này làm việc cho tôi:

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(); 
Các vấn đề liên quan