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?
Essayez setTitle seul, comme ceci:
setTitle("Hello StackOverflow");
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>
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>
setTitle(getResources().getText(R.string.MyTitle));
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");
//...
}
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.
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>
J'utilise Android Studio 3.0.1.
Avec une activité:
setTitle("Title Text");
À l'intérieur d'un fragment:
getActivity().setTitle("Title Text");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.Main_Activity);
this.setTitle("Title name");
}
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);
}
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>
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");}
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);
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;
}