如何在Android中更改Activity的标题?

时间:2010-02-04 09:06:22

标签: android android-activity

我正在使用

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

更改我当前活动的标题,但似乎无效。

有人可以指导我如何改变它吗?

16 个答案:

答案 0 :(得分:472)

单独尝试setTitle,如下所示:

setTitle("Hello StackOverflow");

答案 1 :(得分:222)

只是一个FYI,您可以选择从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>

答案 2 :(得分:24)

如果你想要一次&amp;让系统处理其余的(不是动态的),然后在清单文件中执行此操作:

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

答案 3 :(得分:14)

Application_EndRequest

答案 4 :(得分:9)

这对我有用。

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

答案 5 :(得分:7)

有一种更快的方法,只需使用

YourActivity.setTitle("New Title");

你也可以在 onCreate()中找到它,例如:

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

顺便说一句,你根本不能做的是以静态方式调用setTitle()而不传递任何Activity对象。

答案 6 :(得分:4)

如果您有多个活动,可以在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>

答案 7 :(得分:2)

我正在使用Android Studio 3.0.1。

活动:

setTitle("Title Text");

片段内:

getActivity().setTitle("Title Text");

答案 8 :(得分:2)

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.Main_Activity);
    this.setTitle("Title name");
}

答案 9 :(得分:1)

如果要在Java文件中设置标题,请在活动中写入onCreate

setTitle("Your Title");

如果你想在Manifest中写下

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

答案 10 :(得分:1)

我的Activity和基本活动中有一个工具栏,它会覆盖所有标题。所以我不得不在Activity中的onResume()中使用setTitle,如下所示:

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

答案 11 :(得分:1)

代码帮助我改变了标题。

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

答案 12 :(得分:0)

如果要在通过单击按钮更改活动时更改活动标题。在MainActivity中声明必要的变量:

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

在onCreate()中添加onClickListener并为另一个活动创建新的意图:

    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();
        }
    });

onCreate()中的SecondActivity代码:

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

答案 13 :(得分:0)

如果您使用的是 onCreateOptionsMenu ,还可以在onCreateOptionsMenu中添加 setTitle 代码。

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

    setTitle("Neue Aktivität");
    return true;
}

答案 14 :(得分:0)

在 MainActivity 中:

public class act1 extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.act1);

    setTitle("First Activity");

}

}

答案 15 :(得分:-1)

setTitle("欢迎活动");