2012-03-15 17 views
5

He creado un tema personalizado para los cuadros de diálogo en mi aplicación de Android, y estaba planeando anular el diseño utilizado para el título del cuadro de diálogo. Vi que en el android estándar Theme hay este atributo que se parece a uno para modificar.Diseño del título del cuadro de diálogo anterior en Android

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

Pero cuando trato de anularlo en mi 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> 

veo el siguiente error:

No resource found that matches the given name: attr 'android:dialogTitleDecorLayout'

Por qué no fui capaz de cambiar y cómo puedo saber cual los atributos pueden ser cambiados y cuales no?

+0

puede mostrar el archivo XML completo para el estilo? ¿Podría ser que le falta el esquema xml para Android allí? – Genry

Respuesta

1

No es posible anular ese elemento de esta manera. Tienes que personalizar el diálogo con el diseño requerido y luego en el diseño debes aplicar el tema aquí para lo que sea que necesites.

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> 

// este es el método en el que aparece el cuadro de diálogo en el evento de botón onclick

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

} 
Cuestiones relacionadas