2014-08-30 3 views
0

Я пытаюсь настроить мой AlertDailog. Я в порядке с макетом по умолчанию для AlertDailog, поэтому я не хочу устанавливать какой-либо конкретный вид на мой dailog, я просто хочу изменить мелочи, такие как цвет текста, цвет фона и т. Д.Настройка AlertDailog.Builder Android

Я пробовал два подхода , что кажется правильным, но удивительно, что оба они не работают.

Во-первых, я попытался создать AlertDailog с индивидуальным стилем, как:

AlertDialog.Builder builder = new AlertDialog.Builder(this,R.style.cust_dialog); 

, который дает мне выход, как

enter image description here

я не понял, почему это dailog внутри ящика и даже цвет текста не изменился, поэтому я попробовал другой способ.

Я создал ContextThemeWrapper и передал его AlertDailog.Builder

ContextThemeWrapper ctw = new ContextThemeWrapper(this,R.style.cust_dialog); 
     AlertDialog.Builder builder = new AlertDialog.Builder(ctw); 

Выход был

enter image description here

еще цвет текста или фона не был изменен.

мой cust_dialog.xml является

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="cust_dialog" parent="@android:style/Theme.Holo.Light.Dialog"> 
     <item name="android:windowBackground">@color/brown</item> 
     <item name="android:textColor">@color/red</item> 
    </style> 
</resources> 

Может кто-нибудь сказать мне, что я делаю неправильно или что это правильный способ сделать это?

Спасибо :)

ответ

0

Ok это торчит немного сложнее, чем решение, которое вы пытались, но почему вы не построить полный диалог на заказ?

Я уже сделал это, и он работает как шарм. Вам просто нужно:

  1. создать макет XML для вас диалоговых как классического вида
  2. создать класс с расширяет Dialog
  3. , наконец, использовать свой собственный диалог, как и другие

If вам нужен пример кода, дайте мне знать.

0

К сожалению, тематическое диалоговое окно немного сложнее, чем просто изменение атрибутов windowBackground и textColor. Вы должны определить вашу тему, как это:

<style name="YourAlertDialogTheme"> 
    <item name="android:windowBackground">@android:color/transparent</item> 
    <item name="android:windowContentOverlay">@null</item> 
    <item name="android:windowIsFloating">true</item> 
    <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item> 
    <item name="android:windowMinWidthMajor">@android:dimen/dialog_min_width_major</item> 
    <item name="android:windowMinWidthMinor">@android:dimen/dialog_min_width_minor</item> 
    <item name="android:windowTitleStyle">...</item> 
    <item name="android:textAppearanceMedium">...</item> 
    <item name="android:borderlessButtonStyle">...</item> 
    <item name="android:buttonBarStyle">...</item> 
</style> 

Я написал полный блоге с подробным описанием, как определить и связать стиль каждого элемента, here. Вы будете в состоянии сделать такие вещи, как:

Please have better taste than that

(Пожалуйста, лучший вкус, чем)

Смежные вопросы