web-dev-qa-db-fra.com

Comment changer le titre de l'activité sur Android?

J'utilise 

Window w = getWindow();
w.setTitle("My title");

changer le titre de mon activité actuelle mais cela ne semble pas fonctionner.

Quelqu'un peut-il me guider sur la façon de changer cela?

201
UMAR

Essayez setTitle seul, comme ceci:

setTitle("Hello StackOverflow");
468
jeffh

Juste un FYI, vous pouvez éventuellement le faire à partir du XML.

Dans le fichier AndroidManifest.xml, vous pouvez le définir avec

Android:label="My Activity Title"

Ou

Android:label="@string/my_activity_label"

Exemple:

    <activity
        Android:name=".Splash"
        Android:label="@string/splash_activity_title" >
        <intent-filter>
            <action Android:name="Android.intent.action.MAIN" />

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

Si vous le souhaitez une fois et laissez le système gérer le reste (non dynamique), procédez comme suit dans votre fichier manifeste:

<application
        Android:allowBackup="true"
        Android:icon="@drawable/ic_launcher"
        Android:label="@string/app_name"
        Android:theme="@style/AppTheme" >
        <activity
            Android:name=".MainActivity"
            Android:label="@string/app_name_full" > //This is my custom title name on activity. <- The question is about this one.
            <intent-filter Android:label="@string/app_launcher_name" > //This is my custom Icon title name (launcher name that you see in Android apps/homescreen)
                <action Android:name="Android.intent.action.MAIN" />

                <category Android:name="Android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
24
hB0
setTitle(getResources().getText(R.string.MyTitle));
14
Gennady Kozlov

Cela a fonctionné pour moi.

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.fragment, container, false);
    getActivity().setTitle("My Title");
//...
}
9
moberme

Il y a un moyen plus rapide, il suffit d'utiliser 

YourActivity.setTitle("New Title");

Vous pouvez également le trouver dans le onCreate () avec ceci, par exemple: 

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        this.setTitle("My Title");
    }

À propos, vous ne pouvez simplement pas appeler setTitle () de manière statique sans transmettre d'objet Activity.

7
Defrag

Si vous avez plusieurs activités, vous pouvez le définir comme ceci dans AndroidManifest.xml

<application
    Android:allowBackup="true"
    Android:icon="@mipmap/ic_launcher"
    Android:label="@string/app_name"
    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=".NumbersActivity"
        Android:label="@string/category_numbers"
        Android:theme="@style/category_numbers" />
    <activity
        Android:name=".FamilyActivity"
        Android:label="@string/category_family"
        Android:theme="@style/category_family" />
    <activity
        Android:name=".ColorsActivity"
        Android:label="@string/category_colors"
        Android:theme="@style/category_colors" />
    <activity
        Android:name=".PhrasesActivity"
        Android:label="@string/category_phrases"
        Android:theme="@style/category_phrases" />
    <activity
        Android:name=".ExperimentActivity"
        Android:label="@string/category_experiment"
        Android:theme="@style/category_experiment" />
</application>
4
SGX

J'utilise Android Studio 3.0.1.

Avec une activité:

setTitle("Title Text");

À l'intérieur d'un fragment:

getActivity().setTitle("Title Text");
2
adrian
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.Main_Activity);
    this.setTitle("Title name");
}
2
Govind Maheshwari

J'ai une barre d'outils dans mon activité et une activité de base qui remplace tous les titres. J'ai donc dû utiliser setTitle dans onResume () dans l'activité comme suit:

@Override
  protected void onResume() {
    super.onResume();
    toolbar.setTitle(R.string.title);
  }
1
Hissatsu

Si vous voulez définir le titre dans un fichier Java, alors écrivez dans votre activité onCreate

setTitle("Your Title");

si vous voulez dans manifeste, écrivez

    <activity
        Android:name=".MainActivity"
        Android:label="Your Title" >
        <intent-filter>
            <action Android:name="Android.intent.action.MAIN" />

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

Le code m'a aidé à changer le titre.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_name);
    ActivityName.this.setTitle("Your Activity Title");}
1
Rohan Gupta

Si vous souhaitez modifier le titre de l’activité lorsque vous changez d’activité, cliquez sur le bouton. Déclarez les variables nécessaires dans MainActivity:

    private static final String TITLE_SIGN = "title_sign";
    ImageButton mAriesButton;

Ajoutez onClickListener dans onCreate () et créez une nouvelle intention pour une autre activité:

    mTitleButton = (ImageButton) findViewById(R.id.title_button);
    mTitleButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Intent intent = new Intent(MainActivity.this, 
        SignActivity.class);
        String title_act = getText(R.string.simple_text).toString();
        intent.putExtra("title_act", title_act);
        startActivity(intent);
        finish();
        }
    });

Code SecondActivity dans onCreate ():

    String txtTitle = getIntent().getStringExtra("title_act");
    this.setTitle(txtTitle);
0
Egor Voevodin

Si vous utilisez onCreateOptionsMenu , vous pouvez également ajouter setTitle code dans onCreateOptionsMenu.

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu, menu);

    setTitle("Neue Aktivität");
    return true;
}
0
Umut D.