Beim Erstellen des können AlertDialog
Sie ein zu verwendendes Thema festlegen.
Beispiel - Erstellen des Dialogs
AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.MyAlertDialogStyle);
builder.setTitle("AppCompatDialog");
builder.setMessage("Lorem ipsum dolor...");
builder.setPositiveButton("OK", null);
builder.setNegativeButton("Cancel", null);
builder.show();
styles.xml - Benutzerdefinierter Stil
<style name="MyAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
<!-- Used for the buttons -->
<item name="colorAccent">#FFC107</item>
<!-- Used for the title and text -->
<item name="android:textColorPrimary">#FFFFFF</item>
<!-- Used for the background -->
<item name="android:background">#4CAF50</item>
</style>
Ergebnis
Bearbeiten
Um das Erscheinungsbild des Titels zu ändern, haben Sie folgende Möglichkeiten. Fügen Sie zuerst einen neuen Stil hinzu:
<style name="MyTitleTextStyle">
<item name="android:textColor">#FFEB3B</item>
<item name="android:textAppearance">@style/TextAppearance.AppCompat.Title</item>
</style>
Verweisen Sie anschließend einfach auf diesen Stil in Ihrem MyAlertDialogStyle
:
<style name="MyAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
...
<item name="android:windowTitleStyle">@style/MyTitleTextStyle</item>
</style>
Auf diese Weise können Sie eine andere textColor
für die Nachricht über android:textColorPrimary
und eine andere für den Titel über den Stil definieren.
appcompat-v7
- es bringt die Abwärtskompatibilität neuerer Komponenten auf API Level 7 (Android 2.1)Verwenden Sie ein Thema für die gesamte Anwendung und verwenden Sie nicht den zweiten Parameter, um Ihren Dialog zu gestalten
Wenn Sie in meiner App einen Farbakzent im Thema verwenden, werden die Schaltflächen des alertDialogs nicht mit dem Thema colorAccent angezeigt. Ich muss dem Thema einen Dialogstil hinzufügen.
quelle
Wenn Sie den neuen android.support.v7.app.AlertDialog verwenden möchten und unterschiedliche Farben für die Schaltflächen sowie ein benutzerdefiniertes Layout haben möchten, besuchen Sie meine https://gist.github.com/JoachimR/6bfbc175d5c8116d411e
quelle
Builder setSingleChoiceItems(CharSequence[] items, int checkedItem, final OnClickListener listener)
. Ich möchte nicht so weit gehen, den Adapter zu unterklassifizieren und die Ansicht dort zu optimieren.Folgen Sie der Antwort von @reVerse, aber in meinem Fall hatte ich bereits eine Eigenschaft in meinem
AppTheme
LikeSo wird mein Dialog aussehen
Ich habe es gelöst durch
1) Ändern Sie den Import von
android.app.AlertDialog
inandroid.support.v7.app.AlertDialog
2) Ich überschreibe 2 Eigenschaften
AppTheme
mit Nullwert.
Hoffe es hilft einem anderen Volk
quelle
Wenn Sie wie ich sind, möchten Sie nur einige der Farben in AppCompat ändern. Die einzige Farbe, die Sie im Dialogfeld eindeutig ändern müssen, ist der Hintergrund. Dann müssen Sie nur noch eine Farbe für festlegen
colorBackgroundFloating
.Hier ist mein Grundthema, das einfach einige Farben ohne verschachtelte Themen ändert:
quelle
quelle