Comment changer le texte sur la barre d'action

Actuellement, il affiche juste le nom de l'application et je veux qu'il affiche quelque chose de personnalisé et être différent pour chaque écran dans mon application.

par exemple: mon écran d'accueil pourrait indiquer "page1" dans la barre d'action tandis qu'une autre activité pour laquelle l'application commute pourrait avoir "page2" dans cette barre d'action.

200
demandé sur Tim Castelijns 2010-08-09 12:04:24

13 réponses

mise à jour: Dernière action (titre) motif:

FYI, ActionBar a été introduit dans le niveau API 11. ActionBar est une fenêtre au sommet de l'activité qui peut afficher le titre de l'activité , les modes de navigation, et d'autres éléments interactifs comme la recherche.

je me souviens exactement de personnaliser la barre de titre et de la rendre cohérente à travers l'application. Pour que je puisse faire une comparaison avec les jours plus tôt et peut énumérer certains des avantages de L'utilisation ActionBar:

  1. il offre à vos utilisateurs une interface familière à travers les applications que le système adapte gracieusement pour différentes configurations d'écran.
  2. les développeurs n'ont pas besoin d'écrire beaucoup de code pour afficher le titre de l'activité, les icônes et les modes de navigation car ActionBar est déjà prêt avec l'abstraction de haut niveau.

pour exemple:

enter image description here

enter image description here

= > voie normale,

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

=> Personnalisation De La Barre D'Action,

par exemple:

@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();

}

Style de la Barre d'Action:

la barre D'Action vous fournit des looks basiques et familiers, des modes de navigation et d'autres actions rapides à effectuer. Mais que ça ne veut pas dire que ça se ressemble dans toutes les applications. Vous pouvez personnaliser votre INTERFACE utilisateur et des exigences de conception. Il suffit de définir et d'écrire des styles et des thèmes.

en Lire plus: Style de la Barre d'Action

et si vous voulez générer des styles pour ActionBar alors cet générateur de Style outil peut vous aider.

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

Vieux: jours plus Tôt:

= > voie normale,

vous pouvez changer le titre de chaque écran (i.e. activité) en Android:label

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

=> Personnalisé - Titre - bar


mais si vous voulez personnaliser la barre de titre à votre façon, i.e. Want to put Image icon and custom-text , alors le code suivant fonctionne pour moi:

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"/>

barre de titre.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>

barre de titre.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);
        }
    }
}

les chaînes.xml

Les cordes.le fichier xml est défini dans le dossier values .

<?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>
317
répondu Paresh Mayani 2014-06-17 07:26:29

, Vous pouvez définir l'étiquette pour chaque activité de votre fichier manifeste.

normale définition d'une activité ressemble à ceci:

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

où le texte du titre doit être remplacé par l'id d'une ressource de chaîne de caractères pour cette activité.

vous pouvez aussi définir le titre du texte à partir du code si vous voulez le définir dynamiquement.

setTitle(address.getCity());

avec cette ligne, le titre est fixé à la ville d'une adresse spécifique dans la méthode oncrée de mon activité.

97
répondu Janusz 2010-08-09 08:08:01

vous pouvez définir votre titre de façon programmatique en utilisant setTitle dans votre Activity , cette méthode peut accepter soit un String ou un ID défini dans votre fichier values/strings.xml . Exemple:

public class YourActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {

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

    }
}
52
répondu donturner 2012-01-13 15:16:54

nous pouvons changer le titre de la barre D'action de deux façons:

  1. dans le manifeste: dans le fichier du Manifeste, définissez l'étiquette de chaque activité.

    android:label="@string/TitleWhichYouWantToDisplay"
    
  2. en code: en code, appelez la méthode setTitle() avec une chaîne ou l'id de chaîne comme argument.

    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);
    
        }
    }
    
17
répondu Radheshyam Singh 2014-06-17 09:10:01

Activité Intérieure.onCreate() de rappel ou dans un autre endroit où vous avez besoin de changer le titre:

getSupportActionBar().setTitle("Whatever title");
9
répondu Andrey 2015-10-13 06:11:01

essayez ça...

public void onCreate(Bundle savedInstanceState) 
{
super.onCreate(savedInstanceState);
    this.setTitle(String.format(your_format_string, your_personal_text_to_display));
    setContentView(R.layout.your_layout);
       ...
       ...
}

ça marche pour moi

6
répondu nonickh 2012-01-07 13:51:42
getActionBar().setTitle("edit your text"); 
3
répondu Habibur Rahman Ovie 2016-07-26 08:33:53

un peu plus vieux mais avait le même problème. Je l'ai fait comme ceci:

les chaînes.xml

<string name="title_awesome_app">My Awesome App</string>

et assurez-vous de le mettre dans votre AndroidManifest.xml :

<activity
            ...
            android:label="@string/title_awesome_app" >
            ...
</activity>

c'est facile et vous n'avez pas à vous soucier des références nulles et d'autres choses.

2
répondu Javatar 2015-02-13 21:44:58

la façon la plus facile de changer le nom de la barre d'action est d'aller à L'AndroidManifest.xml et tapez ce code.

<activity android:name=".MainActivity"
    android:label="Your Label> </activity>
2
répondu Mallikarjun Dodmani 2017-03-31 05:48:01

il suffit d'ajouter ce code dans la méthode onCreate .

setTitle("new title");
1
répondu NEC 2018-06-07 16:00:28
ActionBar ab = getActionBar();
TextView tv = new TextView(getApplicationContext());

LayoutParams lp = new RelativeLayout.LayoutParams(
        LayoutParams.MATCH_PARENT, // Width of TextView
        LayoutParams.WRAP_CONTENT);
tv.setLayoutParams(lp);
tv.setTextColor(Color.RED);
ab.setCustomView(tv);

pour plus d'informations, consultez le lien suivant :

http://android--code.blogspot.in/2015/09/android-how-to-change-actionbar-title_21.html

0
répondu Bhaumik Sathvara 2016-11-22 09:49:01

la façon la plus facile est d'appeler cela.setTitle("...") si vous êtes dans l'activité. et si vous êtes dans un fragment, appelez getActivity ().setTitle("...");

de cette façon vous permettra de changer le titre à tout moment, pas besoin de l'appeler avant setContentView(R. layout.activity_test);

0
répondu Hatim 2017-01-09 09:51:21

la meilleure façon de changer le nom de la barre d'action est d'aller à L'AndroidManifest.XML et tapez ce code.

<activity android:name=".YourActivity"
        android:label="NameYouWantToDisplay> </activity>
0
répondu Parichay21 2017-02-01 09:10:37