Как изменить название Activity в Android? - PullRequest
208 голосов
/ 04 февраля 2010

Я использую

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

, чтобы изменить заголовок моей текущей деятельности, но, похоже, он не работает.

Может кто-нибудь подсказать, как это изменить?

Ответы [ 14 ]

474 голосов
/ 04 февраля 2010

Попробуйте установить setTitle самостоятельно, например:

setTitle("Hello StackOverflow");
224 голосов
/ 02 апреля 2013

Просто к вашему сведению, вы можете сделать это из XML.

В AndroidManifest.xml вы можете установить его с помощью

android:label="My Activity Title"

Или

android:label="@string/my_activity_label"

Пример:

    <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>
24 голосов
/ 06 августа 2013

Если вы хотите сделать это один раз и позволить системе обрабатывать все остальное (не динамически), сделайте так в файле манифеста:

<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>
14 голосов
/ 21 июля 2015
setTitle(getResources().getText(R.string.MyTitle));
9 голосов
/ 20 мая 2015

Это сработало для меня.

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.fragment, container, false);
    getActivity().setTitle("My Title");
//...
}
7 голосов
/ 02 февраля 2017

Есть более быстрый способ, просто используйте

YourActivity.setTitle("New Title");

Вы также можете найти его внутри onCreate () , например:

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

Кстати, то, что вы просто не можете сделать, это вызвать setTitle () статическим способом без передачи какого-либо объекта Activity.

4 голосов
/ 17 апреля 2017

Если у вас есть несколько действий, вы можете установить это в 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>
2 голосов
/ 21 июня 2018
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.Main_Activity);
    this.setTitle("Title name");
}
2 голосов
/ 07 декабря 2017

Я использую Android Studio 3.0.1.

с деятельностью:

setTitle("Title Text");

Внутри фрагмента:

getActivity().setTitle("Title Text");
1 голос
/ 01 июня 2018

Код помог мне изменить название.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_name);
    ActivityName.this.setTitle("Your Activity Title");}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...