2013-07-23 18 views
8

Chcę zmienić tło okna dialogowego Alert. Próbowałem następujący fragment kodu, aby to zrobić:Jak zmienić tło okna alertu systemu Android Tytuł

<style name="Theme.AlertDialog" parent="@android:style/Theme.Holo.Light.Dialog"> 
     <item name="android:background">@android:color/transparent</item> 
     <item name="android:textColor">#659F26</item> 
     <item name="android:windowTitleStyle">@style/Theme.AlertDialog.Title</item> 
    </style> 

    <style name="Theme.AlertDialog.Title" parent="@android:style/TextAppearance.DialogWindowTitle"> 
     <item name="android:background">@drawable/cab_background_top_example</item> 
    </style> 

kod Java:

ContextThemeWrapper ctw = new ContextThemeWrapper(this, R.style.Theme_AlertDialog); 
final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(ctw); 

alertDialogBuilder.setTitle(getResources().getString(R.string.confirmation)); 
alertDialogBuilder.setMessage(getResources().getString(R.string.msg));  
alertDialogBuilder.show(); 

Moja aplikacja wyświetla okno dialogowe jak poniżej:

enter image description here

gdy chcę go szukać na przykład:

enter image description here

Proszę zasugerować, co robię źle.

+0

dlaczego głosowanie w dół? – mudit

+0

Po prostu rozwiązuję mój problem z twojego pytania, więc +1 z mojej strony ..... – duggu

Odpowiedz

6

użyć tego kodu podczas tworzenia okno dialogowe:

dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 

stworzyć własny układ Aż Dostosuj zrobić z tytułu ustaw Twój układ

dialog.setContentView(R.layout.yourlayout); 

UWAGA: użycie

dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); before  
dialog.setContentView(R.layout.yourlayout); 

inaczej spowoduje błąd.

+1

jest sposób, aby to zrobić bez zmiany układu domyślnego okna dialogowego. Chcę tylko zmienić tytuł i sposób, w jaki sugerujesz, sam muszę zrobić układ i kilka innych rzeczy. – mudit

+0

Tak, możesz dostosować tyle, ile chcesz –

+2

moje pytanie: czy istnieje sposób radzenia sobie z tym poprzez style raczej zmieniając cały układ? – mudit

0
ContextThemeWrapper ctw = new ContextThemeWrapper(this, R.style.Theme_AlertDialog); 

W tym zastosowaniu linii zamiast "this" użytkowania ActivityName.this

+1

To nie jest rozwiązanie problemu OP. – laalto

Powiązane problemy