Configuración del título y del subtítulo de la barra de acción
Quiero establecer título y subtitil de mi barra de acción antes de tiempo de compilació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?
- ¿Por qué ProgressBar detiene la animación mientras cambia el diseño en Android?
- TextView sin ningún relleno predeterminado
- Cambio de posición del cuadro de diálogo en la pantalla de Android
- Crear barra de búsqueda persistente en android
- El elemento de la vista de cuadrícula no se ilumina cuando se pulsa
Estoy tratando de lograr esto:
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 la API. Y el método getActionBar () es compatible al menos en el nivel 11.
- Android - Cuando se inicia la misma actividad desde el widget con diferentes extras, ¿cómo evitar que aparezca la misma instancia después de regresar del botón HOME?
- En un android ListView, ¿cómo puedo iterar / manipular todas las vistas de los niños, no sólo los visibles?
- ¿Cómo incrustar un diseño dentro de otro en mi caso?
- Cómo actualizar un widget con precisión cada minuto
- RingtonePreference no disparar OnPreferenceChangeListener
- Actualizar el widget de la aplicación en un clic en android
- ¿Hay una manera de mostrar la barra de desplazamiento de ListView todo el tiempo?
- Widget con el proveedor de contenido; Imposible de usar ReadPermission?
Puede hacer algo como esto para codificar las dos 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 las nuevas versiones de Android y el @TargetApi
permite que el código se compile. Por lo tanto, lo hace seguro tanto para versiones de API viejas como nuevas.
Como alternativa, 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 getSupportActionBar()
a getSupportActionBar()
, sin embargo, es una muy buena solución global.
Editar
Tenga en cuenta que cuando esta respuesta se escribió originalmente, ActionBarSherlock
, que desde entonces se ha desaprobado , era la solución de compatibilidad de ir a.
Hoy en día, la appcompat-v7
Google ofrece la misma funcionalidad pero es compatible (y activamente actualizada) por Google. Las actividades que quieran implementar un ActionBar
deben:
- Extender
AppCompatActivity
- Utilizar un derivado
Theme.AppCompat
Para obtener una instancia de ActionBar
utilizando esta biblioteca, se utiliza el método getSupportActionBar()
llamado.
El título para la barra de acción podría estar en el AndroidManifest, aquí:
<activity . . . android:label="string resource" . . . </activity>
Android: label Una etiqueta legible por el usuario para la actividad. La etiqueta se muestra en pantalla cuando la actividad debe ser representada al usuario. A menudo se muestra junto con el icono de actividad. Si no se establece este atributo, se utiliza en su lugar la etiqueta establecida para la aplicación como un todo (consulte el atributo de etiqueta del elemento). La etiqueta de la actividad, ya sea aquí o por el elemento, también es la etiqueta por defecto para todos los filtros de intención de la actividad (vea el atributo label del elemento). La etiqueta se debe establecer como una referencia a un recurso de cadena, por lo que se puede localizar como otras cadenas en la interfaz de usuario. Sin embargo, como una conveniencia mientras se está desarrollando la aplicación, también se puede establecer como una cadena sin formato.
Hay otra opción que nadie comentó, desde la Biblioteca de Soporte V7 fue implementado por Google ActionBarSupport
, que es compatible con ActionBar
de Android 2.2 a la última.
Si cambia su ActionBar
, puede hacer getSupportActionBar().setTitle("")
en todas las versiones de Android.
Intente esto:
android.support.v7.app.ActionBar ab = getSupportActionBar(); ab.setTitle("This is Title"); ab.setSubtitle("This is Subtitle");
¡No! Tienes que hacerlo en tiempo de ejecución.
Si desea que su aplicación sea compatible con la versión anterior, simplemente compruebe el nivel de API del dispositivo. Si es mayor de 11, entonces puedes jugar con la ActionBar y establecer el subtítulo.
if(Integer.valueOf(android.os.Build.VERSION.SDK) >= 11){ //set actionbar title }
<activity android:name=".yourActivity" android:label="@string/yourText" />
¡Ponga este código en su archivo del manifiesto del android y debe fijar el título de la barra de la acción a lo que usted quiere nunca!
Prueba esto:
En strings.xml añade tu título y subtítulos …
ActionBar ab = getActionBar(); ab.setTitle(getResources().getString(R.string.myTitle)); ab.setSubtitle(getResources().getString(R.string.mySubTitle));
Para una actividad, puede utilizar este enfoque para especificar un subtítulo, junto con el título, en el manifiesto.
Manifiesto:
<activity android:name=".MyActivity" android:label="@string/my_title" android:description="@string/my_subtitle"> </activity>
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 necesitas especificar la cadena de título una vez, y podrás especificar el subtítulo a su lado.
Puede definir el título en la barra de acción mediante AndroidManifest.xml
. Añadir etiqueta a la activity
<activity android:name=".YourActivity" android:label="Your Title" />
Prueba esto
Simplemente vaya a su archivo Manifiesto. Y Usted ha definido la etiqueta para cada actividad en su archivo de manifiesto.
<activity android:name=".Search_Video" android:label="@string/app_name" android:screenOrientation="portrait"> </activity>
Aquí cambia
Android: label = "@ string / your_title"
Esto es trivial de una línea en Kotlin
supportActionBar?.title = getString(R.string.coolTitle)
- ¿Cómo hacer un TableLayout desplazable?
- Error en la construcción con Gradle en la línea de comandos con un proyecto de estudio de Android: Xlint error