Tôi có một hoạt động chính nơi người dùng có thể thay đổi (thông qua tùy chọn) màu nền thành màu yêu thích của họ. Vấn đề của tôi là tôi không thể thay đổi màu nền của bất kỳ hộp thoại tùy chỉnh nào.Làm thế nào để thay đổi màu nền của hộp thoại theo chương trình?
câu trả lời khác trong stack overflow đề nghị:
(a) overiding the default theme với màu ưa thích. Tôi không nghĩ là một giải pháp phù hợp trong trường hợp này vì tôi biết việc thay đổi chủ đề trong thời gian chạy không được khuyến nghị.
(b) Changing in styles.xml (không phù hợp trong trường hợp này như tôi không thể thay đổi tại thời gian chạy)
(c) Overriding the AlertBuilder class (nhưng điều này mang lại màu hộp thoại cảnh báo toàn bộ)
này gần nhất tôi đã đi để thay đổi màu sắc, hãy xóa tiêu đề trình tạo cảnh báo và đặt nền của chế độ xem tùy chỉnh thành màu yêu thích (ví dụ :.p.pink). Thật không may, điều này cho một dải xấu xí ở trên cùng và dưới cùng của hộp thoại.
Mã được bao gồm sau hình ảnh, đề xuất về cách thay đổi nền của hộp thoại sẽ được đánh giá cao.
Mã cho sự xuất hiện mặc định
protected Dialog onCreateDialog(int dialogId) {
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
final View viewMessEdit = inflater.inflate(R.layout.example,(ViewGroup) findViewById(R.id.dialog_mess_edit_root));
builder.setView(viewMessEdit);
builder.setTitle("Alert builder's title");
}
Mã cho việc thay đổi màu thoại tùy chỉnh quan điểm nền (và chức danh những người xây dựng của Alert được lấy ra)
protected Dialog onCreateDialog(int dialogId) {
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
final View viewMessEdit = inflater.inflate(R.layout.example,(ViewGroup) findViewById(R.id.dialog_mess_edit_root));
builder.setView(viewMessEdit);
viewMessEdit.setBackgroundResource(R.color.pink_dark);
}
bạn có thể hoàn thành hộp thoại này làm hình ảnh của mình không? nếu có, bạn có thể chia sẻ không? – pengwang