Cómo cambiar el texto en la barra de acciones

Resuelto dootcher asked hace 54 años • 20 respuestas

Actualmente solo muestra el nombre de la aplicación y quiero que muestre algo personalizado y que sea diferente para cada pantalla de mi aplicación.

Por ejemplo: mi pantalla de inicio podría decir "página1" en la barra de acciones, mientras que otra actividad a la que cambia la aplicación podría tener "página2" en la barra de acciones de esa pantalla.

dootcher avatar Jan 01 '70 08:01 dootcher
Aceptado

Actualización: último patrón de ActionBar (Título):

Para su información, ActionBar se introdujo en el nivel API 11. ActionBar es una función de ventana en la parte superior de la Actividad que puede mostrar el título de la actividad , los modos de navegación y otros elementos interactivos como la búsqueda.

Recuerdo exactamente cómo personalizar la barra de título y hacerla consistente en la aplicación. Entonces puedo hacer una comparación con los días anteriores y enumerar algunas de las ventajas de usar ActionBar:

  1. Ofrece a sus usuarios una interfaz familiar entre aplicaciones que el sistema adapta elegantemente a diferentes configuraciones de pantalla.
  2. Los desarrolladores no necesitan escribir mucho código para mostrar el título de la actividad, los íconos y los modos de navegación porque ActionBar ya está lista con una abstracción de nivel superior.

Por ejemplo:

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

=> Modo normal,

getActionBar().setTitle("Hello world App");   
getSupportActionBar().setTitle("Hello world App");  // provide compatibility to all the versions

=> Personalización de la barra de acciones,

Por ejemplo:

@Override
public void setActionBar(String heading) {
    // TODO Auto-generated method stub

    com.actionbarsherlock.app.ActionBar actionBar = getSupportActionBar();
    actionBar.setHomeButtonEnabled(true);
    actionBar.setDisplayHomeAsUpEnabled(false);
    actionBar.setDisplayShowHomeEnabled(false);
    actionBar.setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.title_bar_gray)));
    actionBar.setTitle(heading);
    actionBar.show();

}

Aplicar estilo a la barra de acción:

ActionBar le proporciona aspectos básicos y familiares, modos de navegación y otras acciones rápidas para realizar. Pero eso no significa que se vea igual en todas las aplicaciones. Puede personalizarlo según su interfaz de usuario y sus requisitos de diseño. Sólo tienes que definir y escribir estilos y temas.

Lea más en: Diseñar la barra de acción

Y si desea generar estilos para ActionBar, esta herramienta Generador de estilos puede ayudarlo.

==================================================== =================================

Antiguo: Días anteriores:

=> Modo normal,

Puede cambiar el título de cada pantalla (es decir, actividad) configurando suAndroid:label

   <activity android:name=".Hello_World"
                  android:label="This is the Hello World Application">
   </activity>

=> Personalizado - Título - barra


Pero si desea personalizar la barra de título a su manera, es decir Want to put Image icon and custom-text, el siguiente código funciona para mí:

principal.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"/>

barra de título.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="400dp" 
  android:layout_height="fill_parent"
  android:orientation="horizontal">

<ImageView android:id="@+id/ImageView01" 
            android:layout_width="57dp" 
            android:layout_height="wrap_content"
            android:background="@drawable/icon1"/>

<TextView 

  android:id="@+id/myTitle" 
  android:text="This is my new title" 
  android:layout_width="fill_parent" 
  android:layout_height="fill_parent" 
  android:textColor="@color/titletextcolor"
   />
</LinearLayout>

TítuloBar.java

public class TitleBar extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        final boolean customTitleSupported = 
                requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
        setContentView(R.layout.main);
        if (customTitleSupported) {
            getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,
                R.layout.titlebar);
        }
        final TextView myTitleText = (TextView) findViewById(R.id.myTitle);
        if (myTitleText != null) {
            myTitleText.setText("NEW TITLE");
            // user can also set color using "Color" and then
            // "Color value constant"
            // myTitleText.setBackgroundColor(Color.GREEN);
        }
    }
}

cadenas.xml

El archivo strings.xml se define en la valuescarpeta.

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, Set_Text_TitleBar!</string>
    <string name="app_name">Set_Text_TitleBar</string>
    <color name="titlebackgroundcolor">#3232CD</color>
    <color name="titletextcolor">#FFFF00</color>
</resources>
Paresh Mayani avatar Aug 09 '2010 08:08 Paresh Mayani

Puede definir la etiqueta para cada actividad en su archivo de manifiesto.

Una definición normal de una actividad se ve así:

<activity
     android:name=".ui.myactivity"
     android:label="@string/Title Text" />

Donde el texto del título debe reemplazarse por la identificación de un recurso de cadena para esta actividad.

También puede configurar el texto del título desde el código si desea configurarlo dinámicamente.

setTitle(address.getCity());

con esta línea el título se establece en la ciudad de una dirección específica en el método oncreate de mi actividad.

Janusz avatar Aug 09 '2010 08:08 Janusz

Puede definir su título mediante programación usando setTitledentro de su Activity, este método puede aceptar Stringun ID definido en su values/strings.xmlarchivo. Ejemplo:

public class YourActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {

        setTitle(R.string.your_title);
        setContentView(R.layout.main);

    }
}
donturner avatar Jan 13 '2012 15:01 donturner

Podemos cambiar el título de la ActionBar de dos maneras:

  1. En el Manifiesto: en el archivo de manifiesto, establezca la etiqueta de cada Actividad.

    android:label="@string/TitleWhichYouWantToDisplay"
    
  2. En el código: en el código, llame al método setTitle() con una Cadena o la identificación de la Cadena como argumento.

    public class MainActivity extends Activity {
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
    
            setTitle(R.string.TitleWhichYouWantToDisplay);
            // OR You can also use the line below
            // setTitle("MyTitle")
            setContentView(R.layout.activity_main);
    
        }
    }
    
Radheshyam Singh avatar Jan 16 '2014 06:01 Radheshyam Singh