Các Android Developer documentation mô tả làm thế nào để thiết lập một chủ đề Dialog
cho một Activity
:Làm thế nào để hiển thị một ActionBarCompat Activity như một hộp thoại thiết lập chủ đề của nó trong AndroidManifest.xml?
Mẹo: Nếu bạn muốn có một hộp thoại tùy chỉnh, bạn có thể thay vì hiển thị một
Activity
như một hộp thoại thay vì sử dụngDialog
API. Đơn giản chỉ cần tạo ra một hoạt động và thiết lập chủ đề của nó đểTheme.Holo.Dialog
trong các yếu tố<activity>
manifest:
<activity android:theme="@android:style/Theme.Holo.Dialog" >
Vậy là xong. Hoạt động hiện hiển thị trong cửa sổ hộp thoại thay vì toàn màn hình.
Tôi đang cố gắng thực hiện việc này cho một ứng dụng sử dụng ActionBarCompat. Tôi đã cố gắng chủ đề khác nhau như ...
android:theme="@android:style/Theme.Dialog"
android:theme="@style/Theme.AppCompat.Base.CompactMenu.Dialog"
android:theme="@style/Theme.AppCompat.CompactMenu.Dialog"
Tuy nhiên không ai trong số họ có vẻ làm việc kể từ khi tôi kết thúc với thông báo lỗi tương tự:
java.lang.IllegalStateException: Bạn cần phải sử dụng chủ đề Theme.AppCompat (hoặc hậu duệ) với hoạt động này.
@ drawable/dialog_full_holo_light không có sẵn cho SDK nhỏ hơn 11. Chúng ta có nên thêm nó vào dự án (trong đó để tìm nó sau đó?) hoặc xóa nó khỏi xml? – Giorgio
@Giorgio, xem tài nguyên ở cuối blog của tôi, nó có một dự án nguồn đầy đủ trong Google Code cũng như liên kết tới tài nguyên Android - vâng, bạn cần phải thêm chúng vào dự án của mình và đây là liên kết - https: //github.com/android/platform_frameworks_base/tree/master/core/res/res –