Question

il ne fait qu'afficher actuellement le nom de l'application et je le veux pour afficher quelque chose de personnalisé et être différent pour chaque écran dans mon application.

Par exemple:. Mon écran d'accueil pourrait dire « page1 » dans la barre d'action tandis qu'une autre activité que l'application de commutateurs pourrait avoir « page2 » dans cette barre d'action écrans

Était-ce utile?

La solution

Mise à jour: Les dernières ActionBar (Titre) modèle:

Pour votre information, ActionBar a été introduite dans l'API de niveau 11. ActionBar est une caractéristique de la fenêtre en haut 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 sur la personnalisation de la barre de titre et de la rendre cohérente par l'application. Je peux donc faire une comparaison avec les jours précédents et peut énumérer quelques-uns des avantages de l'utilisation ActionBar:

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

Par exemple:

entrer image description ici

entrer image description ici

=> normalement,

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

=> Personnalisation 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();

}

Styling la barre d'action:

Le ActionBar fournit des regards de base et familiers, les modes de navigation et d'autres actions rapides à effectuer. Mais cela ne veut pas dire qu'il a la même dans toutes les applications. Vous pouvez le personnaliser selon vos besoins d'assurance-chômage et de conception. Il vous suffit de définir et de styles d'écriture et des thèmes.

En savoir plus: Styling la barre d'action

Et si vous voulez générer des styles pour ActionBar alors cette Style générateur outil peut vous aider.

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

Vieux: Un peu plus tôt jours:

=> normalement,

vous pouvez modifier le titre de chaque écran (à savoir l'activité) en réglant leur Android:label

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

=> Personnalisé - Titre - bar


Mais si vous voulez personnaliser barre de titre de votre propre manière, à savoir Want to put Image icon and custom-text , puis les travaux de code suivant pour moi:

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

titlebar.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>

TitleBar.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);
        }
    }
}

strings.xml

Le fichier strings.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>

Autres conseils

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

Une définition normale d'une apparence d'activité comme ceci:

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

Si le texte du titre devrait être remplacé par l'identifiant d'une ressource de chaîne pour cette activité.

Vous pouvez également définir le texte du titre à partir du code si vous souhaitez définir dynamiquement.

setTitle(address.getCity());

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

Vous pouvez définir votre titre en utilisant programatically setTitle au sein de votre Activity, cette méthode peut accepter 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);

    }
}

Nous pouvons changer le titre ActionBar dans l'une des deux façons suivantes:

  1. Dans le Manifest. Dans le fichier manifeste, définissez l'étiquette de chaque activité

    android:label="@string/TitleWhichYouWantToDisplay"
    
  2. Dans le code suivant:. Dans le code, appeler la méthode setTitle () avec une chaîne ou l'identifiant 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);
    
        }
    }
    

intérieur rappel Activity.onCreate () ou en un autre endroit où vous devez changer le titre:

getSupportActionBar().setTitle("Whatever title");

essayez faire ...

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

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

strings.xml

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

et assurez-vous que vous définissez dans votre AndroidManifest.xml :

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

il est facile et vous n'avez pas à vous soucier null références et d'autres choses.

getActionBar().setTitle("edit your text"); 

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

<activity android:name=".MainActivity"
    android:label="Your Label> </activity>

Vous ajoutez simplement ce code dans la méthode onCreate.

setTitle("new title");
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 ce lien:

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

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

<activity android:name=".YourActivity"
        android:label="NameYouWantToDisplay> </activity>

Le plus simple est d'appeler this.setTitle("...") si vous êtes dans l'activité. Et si vous êtes dans un fragment, il suffit d'appeler getActivity().setTitle("...");

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

Pour les développeurs futurs qui utilisent AndroidX et navigation composante architecturale .

Au lieu de définir le titre de la barre d'outils en utilisant l'une des solutions ci-dessus, qui peut être très douloureux si vous souhaitez définir dynamiquement un changement de pile arrière, vous pouvez définir un espace réservé titre du fragment dans le navigation graphique comme suit:

<fragment
    android:id="@+id/some_fragment"
    android:name="package.SomeFragment"
    android:label="Hello {placeholder}"
    tools:layout="@layout/fragment_some">
    <argument
        android:name="placeholder"
        app:argType="string" />
</fragment>

La valeur de paramètre fictif doit être fournie en utilisant la FragmentDirections (via la méthode d'action).

Il est alors remplacé dans le titre et spectacle comme Hello World (quand placeholder = "World").

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top