5 Stimmen

Dialogtitel-Layout in Android außer Kraft setzen

Ich habe ein benutzerdefiniertes Thema für Dialoge in meiner Android-App erstellt, und ich wollte das Layout für den Dialogtitel überschreiben. Ich habe gesehen, dass in der Standard-Android Theme gibt es dieses Attribut, das wie das zu ändernde Attribut aussieht.

<item name="dialogTitleDecorLayout">@layout/dialog_title</item>

Aber wenn ich versuche, sie in meiner Datenbank zu überschreiben Theme

<style name="Theme.Dialog.MyDialog" parent="android:Theme.Dialog">
    <item name="android:windowBackground">@android:color/black</item>
    <item name="android:dialogTitleDecorLayout">@layout/my_dialog_title</item>
</style>

Ich sehe den folgenden Fehler:

Keine Ressource gefunden, die dem angegebenen Namen entspricht: attr 'Android:dialogTitleDecorLayout'

Warum kann ich sie nicht ändern und wie kann ich wissen, welche Attribute geändert werden können und welche nicht?

1voto

Veerababu Medisetti Punkte 2707

Es ist nicht möglich, diesen Punkt auf diese Weise zu überschreiben. Sie müssen das Dialogfeld mit dem erforderlichen Layout anpassen und dann im Layout das Thema hier für Ihre Anforderungen anwenden.

dialog_title.xml

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<TextView
    android:id="@+id/text" 
    android:text="@string/tell_a_friend"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="8dip"
    android:paddingTop="12dip"
    android:paddingBottom="12dip"
    style="@style/bigTextWhite" />

</LinearLayout>

//das ist die Methode, bei der Ihr Dialog im onclick button event erscheint

public void onClickHelp(View v) {
    final Dialog duDialog = new Dialog(this);
    duDialog.setContentView(R.layout.data_usage);
    duDialog.getWindow().setBackgroundDrawableResource(R.color.title_text);

    duDialog.setTitle("Data Usage"); // I would like to set the color and add button here
    ListView data = (ListView) duDialog.findViewById(R.id.DataUsage);
    duCursor = Data.getAll(db);
    startManagingCursor(duCursor);
    duAdapter = new DataAdapter(duCursor);
    data.setAdapter(duAdapter);
    duDialog.show();

}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X