Intenta usar Window.FEATURE_CUSTOM_TITLE pero tienes Exception: no puedes combinar títulos personalizados con otras características del título.

Estoy tratando de usar un título personalizado para incluir un botón de imagen en la barra de título. Recibí mucha ayuda de esta publicación: Android: ¿agregar botón al título de la aplicación? , pero no pude hacer que funcione para mi ListActivity.

En pocas palabras, seguir es lo que tengo:

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

  3. Mi clase de actividad tiene el siguiente aspecto:

     la clase pública WorkOrderListActivity extends ListActivity {
      Cadenas [] pedidos = {"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, orders));    
             }
     }

Cuando ejecuté la aplicación, obtuve AndroidRuntimeException: no puede combinar títulos personalizados con otras características del título.

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

¿Alguien tiene el mismo problema con ListActivity? Además, una vez que consigo hacer este trabajo, ¿cómo adjunto a los oyentes el botón de imagen para que haga algo?

Gracias por adelantado.

Tuve el mismo problema y lo solucioné eliminando

true 

de mi theme.xml

Hacerle crear un estilo personalizado en la carpeta “valores”. Asegúrese de codificar como a continuación.

  

No modifique el parámetro principal.

Esto funcionó para mí.

En lugar de modificar tu theme.xml, también puedes:

crea un nuevo archivo de estilo XML my_theme.xml en una carpeta de valores como esta:

   

Puede definir otras configuraciones como desee en este tema.

Entonces solo usa este tema en tu manifiesto dentro de los atributos de la actividad

  android:theme="@style/MyTheme" 

Finalmente configure su título personalizado como siempre en su actividad .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…

      

Creo que no es correcto, que este es un problema en actividades dentro de tabs. Como algunas de mis actividades pueden ser independientes o dentro de una pestaña, he encontrado que lo siguiente ayuda:

  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 encuentre este problema cuando lo use en la pestaña, ya que ya tiene un título y no puede agregar un título personalizado nuevamente.

deberías agregar este título personalizado en la actividad de la que obtienes la pestaña

Hice exactamente lo que hizo Sunny Dasari, pero con un pequeño cambio puse el @ before y android en el atributo padre.

Entonces mi código se veía así.

  

Intente intercambiar las siguientes líneas:

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

También me he encontrado con este problema 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 arrojará el error

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

Sin embargo, si uso un tema diferente como:

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

entonces no arrojará el error y, posteriormente, no se bloqueará. Sin embargo, estoy tratando de usar un tema como Theme.Holo . No estoy seguro de si hay una forma de evitar esto.

Como estaba intentando comstackr mi progtwig en Android 4.0, me enfrentaba al mismo problema. Ninguna de estas soluciones ayudó. Así que copié el contenido de mi estilo de values> styles.xml y lo pegué en values-v11 styles.xml file y values-v14 styles.xml file. 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 de Android y busque strings.xml (este archivo puede variar en su caso, algo así como themes.xml)

Dentro del archivo debajo de la etiqueta de recursos, compruebe si tiene tags de estilo. Si no lo encuentra, agregue el código a continuación como se menciona a continuación como etiqueta de hijo a recursos

algo como debajo

    

si ya tiene una etiqueta de estilo, simplemente agregue el código a continuación a su etiqueta de estilo

  true 

Para evitar colisiones, simplemente puede agregar

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

a la etiqueta en su AndroidManifest.xml:

  

Esto se debe a que los estilos definidos en el tema predeterminado entran en conflicto con FEATURE_CUSTOM_TITLE (como el atributo android:windowNoTitle ). Al usar otro tema, puede evitar tales 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. Luz) y modificar sus atributos: