美文网首页android开发
Android application的label 和Activ

Android application的label 和Activ

作者: 手打小黑板 | 来源:发表于2020-02-11 10:32 被阅读0次

遇到的问题: 我记得以前一直是 在application 里面设置了label就是我们APP的名字。也是桌面显示的当前APP叫什么。。但是今天发现显示的名字和设置的不一样。奇怪哪里出错了吗?还是另有隐情?

后来通过查询。我知道了 application的label 和Activity的label 设置以后对我们页面的title和APP名字是有区别的。

写了个Demo

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="APP名字"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity"
        android:label="first"
        >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".SecondActivity"
        android:label="second"
        >
    </activity>
</application>

首先设置配置文件。设置 application的label 为 APP名字 设置启动的主页面的lable 为 first 第二个页面是second 通过代码
getTitle().toString()
获得当前的lable .

运行APP结果显示: APP名字是 first 第一个页面显示的lable 是 first 第二个页面显示的lable 是 second

2、修改了一下。。去掉主启动页的lable.重新运行

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="APP名字"
    android:roundIcon="@mipmap/ic_launcher_round"
    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=".SecondActivity"
        android:label="second"
        >
    </activity>
</application>

运行APP结果显示: APP名字是 “APP名字” 第一个页面显示的lable 是 “APP名字” 第二个页面显示的lable 是 second

总结: Application 和activity 均可设置lable ..activity 的lable 优先级更高。。如果使用。优先使用activity自有lable ..如果 activity 未设置lable 。。那么会默认使用application里面的lable .. APP的名字取决于 启动页所在Activity里面的lable 。。如果未设置。。使用application 的lable

Android应用名与activity窗口标题名字如何做到不一样

最近写code,有一个要求是应用程序名字和入口Activity的名字要不一样。尝试的两个方法都行不通。

1.manifest.xml中修改application标签下的label属性和入口activity标签下的label,两个label使用不同的名字。结果发现行不通,应用的名字会被activity的label覆盖。

2.在activity的oncreate方法中加入代码,this.setTitle("xxxx");同样行不通,程序会先显示应用名字(很快的闪过)然后显示自己设置的名字(前面的“xxxx”)。

最后发现正确的方法,如下:在intent-filter中加入label修改应用的名字;在activity标签中加入label修改为入口activity的title。

<activity
android:name="com.example.xxxtest.MainActivity"
android:label="@string/activity_title_name"
android:screenOrientation="portrait >
<intent-filter android:label="@string/app_name">
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

相关文章

网友评论

    本文标题:Android application的label 和Activ

    本文链接:https://www.haomeiwen.com/subject/aditfhtx.html