android:Manifest中的android:label问题(无法设置标题)

时间:2019-12-25 21:09:30

标签: android android-manifest

当我尝试为每个活动在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时,我忘记更改活动名称,因此标题中有问题,但打开的活动中没有问题。

2 个答案:

答案 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”语句可能会导致儿童活动标题出现问题(对于像我这样不了解的人)。