当我尝试为每个活动在AndroidManifest.xml
中给不同的标题时,应用会显示所有子活动的第一个标题,而不是给定标题。我是编码方面的新手,很抱歉为我的问题提供了错误的解释。代码如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.android.miwok">
<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" />
<activity
android:name=".FamilyActivity"
android:label="@string/category_family" />
<activity
android:name=".ColorsActivity"
android:label="@string/category_colors" />
<activity
android:name=".PhrasesActivity"
android:label="@string/category_phrases" />
</application>
</manifest>
我该如何解决?
更新:为了更加清楚,我添加了MainActivity代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Set the content of the activity to use the activity_main.xml layout file
setContentView(R.layout.activity_main);
TextView numbers = (TextView) findViewById(R.id.numbers);
TextView colors = (TextView) findViewById(R.id.colors);
TextView family = (TextView) findViewById(R.id.family);
TextView phrases = (TextView) findViewById(R.id.phrases);
assert numbers != null;
numbers.setOnClickListener(this);
assert colors != null;
colors.setOnClickListener(this);
assert family != null;
family.setOnClickListener(this);
assert phrases != null;
phrases.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.numbers:
Intent numberIntent = new Intent(MainActivity.this,NumbersActivity.class);
startActivity(numberIntent);
break;
case R.id.colors:
Intent colorsIntent = new Intent(MainActivity.this,NumbersActivity.class);
startActivity(colorsIntent);
break;
case R.id.family:
Intent familyIntent = new Intent(MainActivity.this,NumbersActivity.class);
startActivity(familyIntent);
break;
case R.id.phrases:
Intent phrasesIntent = new Intent(MainActivity.this,NumbersActivity.class);
startActivity(phrasesIntent);
break;
}
}
}
第二次更新: 当我为每个活动复制Intent时,我忘记更改活动名称,因此标题中有问题,但打开的活动中没有问题。
答案 0 :(得分:0)
您可以用代码命名: 通过
actionbar.setTitle(“此处的标题”);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (!MyApplication.getInstance().isTablet())
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
setContentView(R.layout.activity_settings);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setTitle(getString(R.string.settings));
....
}
答案 1 :(得分:0)
因此,当我从课程示例中复制MainActivity.java时,所有标题都开始正常工作。区别在于,我使用了“ switch(view.getId())”,而不是为每个活动创建新的onClick。我仍然不明白为什么它不起作用,但是希望我会从更多的经验中学到它。 摘要: 在活动中使用“ switch”语句可能会导致儿童活动标题出现问题(对于像我这样不了解的人)。