Intenta usar Window.FEATURE_CUSTOM_TITLE pero obtiene Excepción: No puedes combinar títulos personalizados con otra función de título.

Estoy intentando utilizar un título de encargo para incluir un botón de la imagen a la barra de título. Tengo un montón de ayuda para formar este post: android: agregar el botón al título de la aplicación? , Pero no pude conseguir que funcione para mi ListActivity.

En pocas palabras, lo siguiente es lo que tengo:

  1. Ocultar la barra de título en el AndroidManifest.xml
  2. Especifique un diseño relativo para el título personalizado (workorder_list_titlebar.xml)

  3. Mi clase de actividad es similar a la siguiente:

     Public class WorkOrderListActivity extends ListActivity {
      String [] orders = {"WO-12022009", "WO-12302009", "WO-02122010", "02152010"};
      @Anular
      Public void onCreate (Bundle savedInstanceState) {
        Super.onCreate (savedInstanceState);   
        RequestWindowFeature (Window.FEATURE_CUSTOM_TITLE);
        This.getWindow (). SetFeatureInt (Window.FEATURE_CUSTOM_TITLE, R.layout.workorder_list_titlebar);
        SetContentView (R.layout.workorder_list);
        SetListAdapter (nuevo ArrayAdapter (esto, R.layout.workorder_list, R.id.label, órdenes));    
             }
     }

Cuando ejecuté la aplicación, recibí AndroidRuntimeException: No puedes combinar títulos personalizados con otras funciones de título.

Base en el seguimiento de la pila, la excepción fue lanzada por com.android.internal.policy.impl.PhoneWindow.requestFeature (PhoneWindow.java:183), que fue desencadenada por setlistAdapter llamada.

¿Alguien tiene el mismo problema con ListActivity? También una vez que logro conseguir este trabajo, ¿cómo puedo adjuntar a los oyentes al botón de imagen para que haga algo?

Gracias por adelantado.

Tuve el mismo problema y lo soluciono borrando

<item name="android:windowNoTitle">true</item> 

De mi theme.xml

Hacer que crear estilo personalizado en "valores" carpeta. Asegúrese de codificar como se indica a continuación.

 <style name="CustomTheme" parent="android:Theme"> 

No modifique el parámetro principal.

Esto funcionó para mí.

En lugar de modificar su theme.xml, también puede:

Cree un nuevo archivo de estilo XML my_theme.xml en la carpeta de valores de la siguiente manera:

 <style name="MyWindowTitleBackground"> <item name="android:background">#444444</item> </style> <style name="MyTheme" parent="android:Theme"> <item name="android:windowTitleBackgroundStyle">@style/MyWindowTitleBackground</item> </style> 

Puede definir otros ajustes como desee en este tema.

A continuación, utilice este tema en su manifiesto dentro de los atributos de la actividad

  android:theme="@style/MyTheme" 

Finalmente, establezca su título personalizado como siempre en su activity.java:

 final Window window = getWindow(); boolean useTitleFeature = false; // If the window has a container, then we are not free // to request window features. if (window.getContainer() == null) { useTitleFeature = window .requestFeature(Window.FEATURE_CUSTOM_TITLE); } setContentView(R.layout.screen_main); if (useTitleFeature) { window.setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title); // Set up the custom title main_title = (TextView) findViewById(R.id.title_left_text); main_title.setText(R.string.app_name); main_title = (TextView) findViewById(R.id.title_right_text); main_title.setText(R.string.Main_titleInfo); } 

No olvide definir el archivo custom_title.xml en su carpeta de diseño. Por ejemplo…

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center_vertical" > <TextView android:id="@+id/title_left_text" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_alignParentLeft="true" android:ellipsize="end" android:singleLine="true" /> <TextView android:id="@+id/title_right_text" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_centerInParent="true" android:ellipsize="end" android:singleLine="true" android:textColor="#fff" /> </RelativeLayout> 

Creo que notenking es correcto, que este es un problema en las actividades dentro de las pestañas. Dado que algunas de mis actividades pueden ser independientes o dentro de una pestaña, he encontrado las siguientes ayudas:

  final Window window = getWindow(); boolean useTitleFeature = false; // If the window has a container, then we are not free // to request window features. if(window.getContainer() == null) { useTitleFeature = window.requestFeature(Window.FEATURE_CUSTOM_TITLE); } setContentView(layoutId); if (useTitleFeature) { window.setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.window_title); } 

Puede ser que encontrar este problema cuando se utiliza en la pestaña, ya que ya tiene un título y no se puede agregar un título personalizado de nuevo.

Debe agregar este título personalizado en la actividad que obtiene la pestaña

Hice exactamente como Sunny Dasari pero con un pequeño cambio puse el @ antes y android en el atributo padre.

Así que mi código se veía así.

 <style name="CustomTheme" parent="@android:Theme"> 

Intente cambiar las siguientes líneas:

 setContentView(R.layout.workorder_list); this.getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.workorder_list_titlebar); 

He corrido en este problema también y parece que es un problema con qué tema se aplica a una actividad en el archivo AndroidManifest.xml. Si utilizo un tema como:

 android:theme="@android:style/Theme.Holo 

Entonces lanzará el error

 android.util.AndroidRuntimeException: You cannot combine custom titles with other title features 

Sin embargo, si utilizo un tema diferente como:

 android:theme="@android:style/Theme.Black" 

Entonces no lanzará el error y posteriormente no se bloqueará. Sin embargo, estoy tratando de utilizar un tema como Theme.Holo . No estoy seguro si hay una manera alrededor de esto.

Desde entonces, estaba tratando de compilar mi programa en android 4.0, estaba enfrentando el mismo problema. Ninguna de estas soluciones me ayudó. Por lo tanto, copié el contenido de mi estilo de values> styles.xml y lo pegué en el archivo values-v11 styles.xml y en el archivo values-v14 styles.xml. Bingo, el truco funcionó.

Como principiante, la mayoría de las respuestas no me ayudaron en mi caso. Así que aquí está mi respuesta.

Vaya a la carpeta res / values ​​en su proyecto android y compruebe si hay strings.xml (este archivo puede variar en su caso, algo como themes.xml)

Dentro del archivo bajo etiqueta de recurso compruebe si tiene etiquetas de estilo. Si no lo encuentra, agregue el código a continuación como se menciona a continuación como un niño a la etiqueta de recursos

Algo como abajo

 <resources> <style name="SomeNameHere"> <item name="android:windowNoTitle">true</item> </style> </resources> 

Si ya tiene una etiqueta de estilo, simplemente añada el código a continuación a su etiqueta de estilo

  <item name="android:windowNoTitle">true</item> 

Para evitar fallos, simplemente puede agregar

 android:theme="@style/android:Theme" 

A la etiqueta <Activity> en su AndroidManifest.xml:

 <activity android:name="test.TestActivity" android:label="@string/app_name" android:theme="@style/android:Theme"> 

Esto se debe a que los estilos definidos en su tema predeterminado están en conflicto con FEATURE_CUSTOM_TITLE (como el atributo android:windowNoTitle ). Mediante el uso de otro tema, puede evitar estos problemas.

Sin embargo, es posible que deba definir su propio tema para cambiar otros atributos, como android: windowTitleSize, color de fondo, color de texto y fuente, etc. En este caso, puede derivar su tema de un tema existente (por ejemplo, Tema. Light) y modificar sus atributos:

 <resources> <style name="CustomWindowTitleBackground"> <item name="android:background">#323331</item> </style> <style name="CustomTheme" parent="@style/android:Theme.Light"> <item name="android:windowNoTitle">false</item> <item name="android:windowTitleSize">60dip</item> <item name="android:windowTitleBackgroundStyle">@style/CustomWindowTitleBackground</item> </style> </resources> 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.