在大多数情况下,添加一个Activity会创建一个相应的Layout(xml)文件,该文件在布局的操作栏中显示“[ActivityName]”(我不知道这是否是正确的术语)。
然而,在一个案例中,情况并非如此。
使用AndroidManifest.xml:
<activity
android:name="hhs.app.VerifyCodeActivity"
android:label="@string/title_activity_verify_code" >
</activity>
<activity
android:name="hhs.app.DeliveryItemActivity"
android:label="@string/title_activity_delivery_item" >
</activity>
... VerifyCodeActivity布局的操作栏上的措辞是appname,而不是Activity名称(对于DeliveryItemActivity的相应布局文件显示活动名称)。
VerifyCodeActivity布局应该说“验证码”,因为它位于\ values \ strings.xml文件中:
<string name="title_activity_verify_code">Verify Code</string>
抓住吸管(与其他代码不同),我在AndroidManifest.xml中对此进行了更改:
android:name=".VerifyCodeActivity"
......对此:
android:name="hhs.app.VerifyCodeActivity"
......但没有区别。发生了什么/如何解决这个问题?
这就是我所说的 - 一个活动显示了我想要的标题:
其他人没有,比如这个:
我看不出为什么第二个不起作用(它显示应用程序名称(“HHS”)而不是特定于活动的字符串)。同样,标签都在AndroidManifest.xml中设置,如上所示...... ???
好的,现在很明显:AndroidManifest.xml将Activity的标签设置为特定字符串(title_activity_settings),该字符串位于strings.xml中:
<string name="title_activity_settings">HHS Settings</string>
...但是在设计时这对Activity的布局文件没有影响,因为布局文件在那时没有与Activity的连接。只有在调用Activity之后才建立连接:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
}
然后,在运行时(或者在我的情况下为“模拟时间”),字符串应用于Activity的Action Bar。
答案 0 :(得分:0)
这是“按设计”,完全符合逻辑。
AndroidManifest.xml将Activity的标签设置为特定的字符串(title_activity_settings),该字符串位于strings.xml中:
<string name="title_activity_settings">HHS Settings</string>
...但是在设计时这对Activity的布局文件没有影响,因为布局文件在那时没有与Activity的连接。只有在调用Activity之后才建立连接:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
}
然后,只有在AndroidManifest.xml中设置的字符串应用于Activity的Action Bar。
在一种情况下,字符串在设计时也显示的原因是布局文件中的原因:
tools:context="hhs.app.DeliveryItemActivity"
在上下文中:
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="hhs.app.DeliveryItemActivity">
<TableRow
. . .