web-dev-qa-db-fra.com

Comment changer le titre et l'icône de la barre d'action Android

J'essaie de faire des choses sur la barre d'action sous Android.

J'ai déjà ajouté de nouveaux éléments dans le côté droit de la barre d'action.

Comment puis-je changer le côté gauche de la barre d'action? Je veux changer l'icône et le texte, et je veux ajouter un "Bouton Précédent" dans la barre d'action pour les autres écrans

Android Action Bar

206
Allan Ramírez

C'est très simple à accomplir

Si vous voulez le changer en code, appelez:

setTitle("My new title");
getActionBar().setIcon(R.drawable.my_icon);

Et définissez les valeurs comme bon vous semble.

Ou, dans le fichier XML du manifeste Android:

<activity Android:name=".MyActivity" 
       Android:icon="@drawable/my_icon" 
       Android:label="My new title" />  

Pour activer le bouton de retour dans votre application, utilisez:

 getActionBar().setHomeButtonEnabled(true);
 getActionBar().setDisplayHomeAsUpEnabled(true);

Le code doit tous être placé dans votre onCreate afin que le changement d'étiquette/icône soit transparent pour l'utilisateur, mais en réalité, il peut être appelé n'importe où pendant le cycle de vie de l'activité.

486
dymmeh

Pour rendre une seule icône utilisable par toutes vos barres d’action, vous pouvez le faire dans votre manifeste Android.

<application
    Android:logo="@drawable/Image">

    ...

</application>
16
Akshat Agarwal

Vous devez juste ajouter ces 3 lignes de code. Remplacez l'icône par votre propre icône. Si vous voulez générer des icônes, utilisez this

getSupportActionBar().setHomeAsUpIndicator(R.drawable.icon_back_arrow);
getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);
9
Sagar Devanga

Si vous souhaitez modifier le titre de la barre d'actions, indiquez simplement le code à 1 ligne suivant dans la fonction onCreate () de votre activité. 

getActionBar().setTitle("Test");
9
Jabbir Basha

Dans Android 5.0, les directives de conception des matériaux découragent l'utilisation d'icône dans ActionBar.

pour l'activer ajouter le code suivant

getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setLogo(R.mipmap.ic_launcher);
getSupportActionBar().setDisplayUseLogoEnabled(true);

le crédit revient à l'auteur de cet article article

7
Azzy

Vous pouvez changer l'icône de votre en ajoutant n'importe quelle icône dans vos dossiers respectifs, puis en modifiant cette ligne dans votre fichier AndroidManifest.xml:

Android:icon="@drawable/ic_launcher"

correspondre à tout le nom de votre icône est là. Ou mettez votre icône sous la forme ic_launcher, si elles sont identiques. Pour ce qui est écrit, ajoutez ou modifiez les chaînes qui correspondent à celles de votre fichier res/values ​​/ strings.xml. Puis, encore une fois dans votre fichier AndroidManifest.xml, modifiez cette ligne:

Android:label="@string/app_name"

quelle que soit la chaîne que vous avez dans leur. Vous devrez le faire pour l'application dans son ensemble et pour les activités souhaitées, mais les lignes sont les mêmes.

J'espère que cela t'aides.

6
RobStemen

Pour cela, vous pouvez le faire de 2 manières: XML ou Java. Voir ici: Comment changer le texte sur la barre d'action

Alors:

XML: 

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

Java:

public class TitleBar extends Activity {
/** Called when the activity is first created. */
@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);
       }
 }
}
5
Miloš

Pour titre défini

getActionBar().setTitle("Title");

Pour set Icon

getActionBar().setIcon(R.drawable.YOUR_ICON_NAME);
3
Bhaumik Sathvara
ActionBar actionBar = getSupportActionBar();
actionBar.setTitle(getString(R.string.titolo));
actionBar.setIcon(R.mipmap.ic_launcher);
actionBar.setDisplayShowHomeEnabled(true);
3
Alessandro Caliaro

J'ai utilisé l'appel suivant dans onNavigationItemSelected:

HomeActivity.this.setTitle(item.getTitle());
2
AmandaHLA

Ajoutez le code ci-dessous dans une fonction onCreate de votre activité.

setTitle("NewName");
1
Chandrahasa Rai

Accédez au manifeste de l'activité spécifique que vous souhaitez modifier. Barre d'action Nom du titre et écrivez Android: label = "Nom du titre" 

0

Ce travail pour moi:

getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeAsUpIndicator(R.mipmap.baseline_dehaze_white_24);
0
Ram Chhabra

Par défaut, le titre de la barre d'action utilise le libellé de l'activité en cours, mais vous pouvez également le définir par programme via ActionBar.setTitle().

Pour implémenter la fonctionnalité du bouton "Précédent" (plus précisément, "Haut") dont vous parlez, lisez la section "Utilisation de l'icône de l'application pour la navigation" du guide de développement Action Bar .

Enfin, pour changer l’icône, le guide aborde également cette question. En bref, la barre d'action affiche l'image fournie dans Android:icon dans l'élément application ou activity de votre manifeste, s'il en existe un. La pratique typique consiste à créer une icône d'application (dans toutes les densités dont vous aurez besoin) nommée ic_launcher.png et à la placer dans vos répertoires drawable-*.

0
CloudyMusic

Allez dans AndroidManifest.xml fichier. Trouvez la balise <application> Là vous pouvez voir un attribut

Android:label="@string/app_name"

Maintenant, allez dans res> values> strings.xml

Changer la

<string name="app_name">MainActivity</string> 

à

<string name="app_name">Your Desired Name</string>

Exemple

AndroidManifest.xml

<application
        Android:allowBackup="true"
        Android:icon="@mipmap/ic_launcher"
        Android:label="@string/app_name"
        Android:roundIcon="@mipmap/ic_launcher_round"
        Android:supportsRtl="true"
        Android:theme="@style/AppTheme">
        <activity
            Android:name=".MainActivity"
            >
            <intent-filter>
                <action Android:name="Android.intent.action.MAIN" />

                <category Android:name="Android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity Android:name=".SubmitForm">

        </activity>
    </application>

strings.xml

<resources>
    <string name="app_name">Your Desired Name</string>
    <string name="action_settings">Settings</string>
</resources>
0
Kartik ganiga

J'ai eu l'erreur non-static method setTitle(CharSequence) cannot be referenced from a static context car j'ai utilisé setTitle() dans la classe statique PlaceholderFragment. Je l'ai résolu en utilisant getActivity().getActionBar().setTitle("new title");

0
user4757345