2013-07-23 13 views
8

Ich möchte den Hintergrund des Alert-Dialogfelds ändern. Ich habe folgenden Code Stück versucht, dies zu tun:So ändern Sie den Hintergrund von Android Alert Dialogfeld Titel

<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> 

Java-Code:

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(); 

Meine App zeigt Dialog wie folgt aus:

enter image description here

während ich will es aussehen wie:

enter image description here

Bitte schlagen Sie vor, was ich falsch mache.

+0

, warum die nach unten Abstimmung? – mudit

+0

Ich löse gerade mein Problem von deiner Frage so +1 von meiner Seite ..... – duggu

Antwort

6

Verwenden Sie diesen Code, wenn ein Dialog zu schaffen:

dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 

Ihr eigenes Layout erstellen, wie viele customize mit dem Titel getan dann Ihr Layout gesetzt

dialog.setContentView(R.layout.yourlayout); 

HINWEIS: Verwendung

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

sonst gibt es Fehler.

+1

gibt es eine Möglichkeit, dies zu tun, ohne das Layout des Standarddialogs zu ändern. Ich möchte nur den Titel und die Art, wie du vorschlägst, ändern, ich muss selbst Layouts machen und einige andere Dinge. – mudit

+0

ja Sie können so viele anpassen, wie Sie wollen –

+2

meine Frage: Gibt es eine Möglichkeit, dies über Stile zu handhaben, anstatt das ganze Layout zu ändern? – mudit

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

In dieser Zeile Verwendung anstelle von "this" verwenden ActivityName.this

+1

Dies ist keine Lösung für OP's Problem. – laalto

Verwandte Themen