如何改变标题的活动在安卓?

我在用

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

要更改我当前活动的标题,但似乎不工作。

有人能告诉我怎么改变吗?

355809 次浏览

试试setTitle本身,像这样:

setTitle("Hello StackOverflow");

仅供参考,您可以选择从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>

如果你想要一次&让系统处理剩下的(不是动态的),然后在你的清单文件中这样做:

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

这对我很管用。

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

如果你想在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>

有个更快的方法,用

YourActivity.setTitle("New Title");

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

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

顺便说一下,您根本不能在不传递任何Activity对象的情况下以静态方式调用setTitle()。

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

我有一个工具栏在我的活动和基础活动,覆盖所有的标题。所以我必须在onResume()在活动中使用setTitle,就像这样:

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

如果你想改变活动标题时,你改变活动点击按钮。在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);

我使用的是Android Studio 3.0.1。

有一个活动:

setTitle("Title Text");

在一个片段内:

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

代码帮助我更改了标题。

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

如果你正在使用onCreateOptionsMenu,你也可以在onCreateOptionsMenu中添加setTitle代码。

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


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

MainActivity内部:

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


setTitle("First Activity");


}

setTitle(“欢迎Activity");

< p > setTitle(“无论apps"); 在MainActivity.java中更简单 我会说。

在Kotlin中,这样做:

this.title = resources.getText(R.string.fast_learning)