Establecer título y subtítulo de Action Bar

Quiero establecer el título y el subtítulo de mi barra de acción antes del tiempo de comstackción. Tengo una manera de hacerlo así:

ActionBar ab = getActionBar(); ab.setTitle("My Title"); ab.setSubtitle("sub-title"); 

Pero no quiero hacerlo en tiempo de ejecución. ¿Hay algún archivo xml o cualquier ubicación donde pueda especificar estos títulos?

Estoy tratando de lograr esto:

enter image description here

Editar:

La razón por la que lo quiero en xml es que quiero que mi aplicación sea compatible con el nivel 8 de API. Y el método getActionBar () es compatible al menos en el nivel 11.

Puede hacer algo como esto para codificar ambas versiones:

 /** * Sets the Action Bar for new Android versions. */ @TargetApi(Build.VERSION_CODES.HONEYCOMB) private void actionBarSetup() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { ActionBar ab = getActionBar(); ab.setTitle("My Title"); ab.setSubtitle("sub-title"); } } 

A continuación, llame a actionBarSetup() en onCreate() . El if ejecuta el código solo en nuevas versiones de Android y @TargetApi permite que el código se compile. Por lo tanto, lo hace seguro para las versiones API antiguas y nuevas.

Alternativamente, también puede usar ActionBarSherlock ( ver edición ) para que pueda tener ActionBar en todas las versiones. Tendrás que hacer algunos cambios como hacer que tus actividades amplíen SherlockActivity y llamar a getSupportActionBar() , sin embargo, es una muy buena solución global.

Editar

Tenga en cuenta que cuando se escribió originalmente esta respuesta, ActionBarSherlock , que desde entonces se ha desaprobado , era la solución de compatibilidad de ir a.

Hoy en día, la biblioteca appcompat-v7 Google proporciona la misma funcionalidad pero es compatible (y se actualiza activamente) por Google. Las actividades que desean implementar una ActionBar deben:

  • extender AppCompatActivity
  • utilizar un derivado de Theme.AppCompat

Para obtener una instancia de ActionBar utilizando esta biblioteca, se usa el método getSupportActionBar() , que se llama acertadamente.

El título de la barra de acciones podría estar en el AndroidManifest, aquí:

  

android: label Una etiqueta legible por el usuario para la actividad. La etiqueta se muestra en pantalla cuando la actividad debe representarse para el usuario. A menudo se muestra junto con el icono de actividad. Si este atributo no está establecido, en su lugar se usa la etiqueta establecida para la aplicación como un todo (vea el atributo de etiqueta del elemento). La etiqueta de la actividad, ya sea establecida aquí o por el elemento, también es la etiqueta predeterminada para todos los filtros de intención de la actividad (ver el atributo de etiqueta del elemento). La etiqueta debe establecerse como una referencia a un recurso de cadena, de modo que se pueda localizar como otras cadenas en la interfaz de usuario. Sin embargo, para su comodidad mientras desarrolla la aplicación, también se puede establecer como una cadena sin formato.

Prueba este:

 android.support.v7.app.ActionBar ab = getSupportActionBar(); ab.setTitle("This is Title"); ab.setSubtitle("This is Subtitle"); 

Hay otra opción que nadie comentó, desde la biblioteca de soporte V7 fue implementada por Google ActionBarSupport , que es compatible con ActionBar desde Android 2.2 hasta la última.
Si cambia su ActionBar , puede hacer getSupportActionBar().setTitle("") en todas las versiones de Android.

   

¡Ponga este código en su archivo de manifiesto de Android y debería establecer el título de la barra de acción como quiera!

¡No! Tienes que hacerlo en tiempo de ejecución.

Si desea que su aplicación sea compatible con versiones anteriores, simplemente verifique el nivel de la API del dispositivo. Si es más alto que 11, puede jugar con la barra de acción y configurar los subtítulos.

 if(Integer.valueOf(android.os.Build.VERSION.SDK) >= 11){ //set actionbar title } 

Prueba esto:

En strings.xml agrega tu título y subtítulo …

 ActionBar ab = getActionBar(); ab.setTitle(getResources().getString(R.string.myTitle)); ab.setSubtitle(getResources().getString(R.string.mySubTitle)); 

Para una actividad puede usar este enfoque para especificar un subtítulo, junto con el título, en el manifiesto.

Manifiesto:

   

Actividad:

 try { ActivityInfo activityInfo = getPackageManager().getActivityInfo(getComponentName(), PackageManager.GET_META_DATA); //String title = activityInfo.loadLabel(getPackageManager()).toString(); int descriptionResId = activityInfo.descriptionRes; if (descriptionResId != 0) { toolbar.setSubtitle(Utilities.fromHtml(getString(descriptionResId))); } } catch(Exception e) { Log.e(LOG_TAG, "Could not get description/subtitle from manifest", e); } 

De esta manera, solo necesita especificar la cadena de título una vez, y puede especificar los subtítulos junto a ella.

Puede establecer el título en la barra de acciones con AndroidManifest.xml . Agregar etiqueta a la activity

  

Prueba esto

Simplemente vaya a su archivo Manifest. y Usted ha definido la etiqueta para cada actividad en su archivo de manifiesto.

   

aquí cambio

android: label = “@ string / your_title”

Esto es trivial de una sola línea en Kotlin

supportActionBar?.title = getString(R.string.coolTitle)