遇到的问题: 我记得以前一直是 在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>
网友评论