VS - Android - 如何将样式应用到 main activity
VS - Android - How to apply a style to main activity
只需要澄清我应该命名什么,在哪里以及如何将自定义样式应用到主 activity。
我想将自定义样式“Theme.Transparent”应用到 CustomStyles.xml 文件中的主 activity。为此,您应该将以下部分添加到 AndroidManifest 文件中:
<activity android:name="???" android:theme="@style/Theme.Transparent"/> // see main question about this
我不知道那里应该有什么名称以及它如何与应用程序中的其他名称相对应(请参阅我的主要问题)。我找到了一些指定 activity 名称的地方。我在代码中将这些地方标记为 1、2、3、4(每个数字见其他问题)
在MainActivity.cs:
namespace CustomName // 1
{
[Activity(Name = "???" Label = "CustomName", MainLauncher = true, Icon = "@drawable/icon")] // 2
public class MainActivity : Activity // 3
{
在AndroidManifest.xml:
<application android:label="CustomName"> // 4
<activity android:name="ActivityName"> // 5
</activity>
</application>
现在提问
主要问题:我应该在 AndroidManifest.xml 中添加 activity 部分作为主要问题 activity 对其应用自定义样式? main activity 应该有什么名字?如果我在那里添加 activity 部分并为其命名,我还应该在哪里使用这个名称来使此样式与此 activity 一起使用?名字乱七八糟
代码1)应用程序命名空间名称应该是应用程序名称的字面意思?
代码 2) [Activity] Name 和 Label 标签,它们有什么用,我应该如何命名?
代码 3) public class MainActivity,这个名字对样式有影响吗?
代码 4) 这是做什么用的?
代码 5) 见主要问题
这一切是如何联系起来的?
编辑 Joe LV 的回答
AndroidManifest.xml:
<application android:label="Custom Application Name"> // this name does not appear in the phone anyway
</application>
styles.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.Transparent" parent="android:style/Theme.Translucent">
...
</style>
</resources>
MainActivity.cs:
namespace CustomName
{
[Activity(Name = "CustomName.MainActivity", Label = "Custom Activity Name", MainLauncher = true, Icon = "@drawable/icon", Theme = "@styles/Theme.Transparent")] // the phone application receives name from this label
Q1) AndroidManifest.xml 中的错误“找不到与给定名称匹配的资源(在 'theme' 处,值为 '@styles/Theme.Transparent')” 回答: 从“@styles/Theme.Transparent”
中的“样式”中删除 s
Q2) phone 中的应用程序从主 activity 标签而不是应用程序标签接收名称。应用程序标签是什么以及为什么应用程序本身获得 activity 的名称?
代码 1) 可以通过更改 AndroidManifest.xml
中应用程序的标签来更改应用程序名称,如下所示:<application android:label="MyName">
,因此您的应用程序名称已更改为“MyName”,您可以在您的 phone 屏幕中看到您的应用程序命名空间仍然是 CustomName
.
代码2) [Activity] Name
和Label
标签,都可以自己改。 Name
是当前 Activity 的名称,可用于显式启动此 activity,就像@Jon 所说的那样,它应该与您的 class 名称相匹配,并且Label
是当前 Activity 的标题,您可以在 activity.
的顶部看到它
代码 3) MainActivity
的名称与样式无关。您可以在 styles.xml
文件中对其进行自定义。
代码4)请参考代码1)
代码 5) 主要问题。正如@Jon 所说,“如果您使用 [Activity] 属性,则无需将您自己的部分添加到 AndroidManifest.xml,因为它将在构建时生成条目。”
请将您的样式放入styles.xml
文件而不是CustomStyles.xml
文件,并通过Theme="@style/Theme.Transparent"
引用。 activity 名称应该是这样的:[Activity Name=package.TypeName]
,因此在您的代码中它应该是 [Activity Name=CustomName.MainActivity]
。
最后,你的 Activity 属性可以是这样的:
[Activity(Label = "YourName", MainLauncher = true,Name = "CustomName.MainActivity",Theme ="@style/Theme.Transparent")]
更新:
Q2)
- 您的应用程序由许多活动组成,每个
Activity
都有它的标签,当这个 activity 是 OnResume
时可以看到标签。这将告诉用户他们在使用您的应用程序时所处的位置,因此用户不会迷失在您的应用程序中。
Application
的标签是您应用的名称,例如“Facebook”、“Google”等
只需要澄清我应该命名什么,在哪里以及如何将自定义样式应用到主 activity。
我想将自定义样式“Theme.Transparent”应用到 CustomStyles.xml 文件中的主 activity。为此,您应该将以下部分添加到 AndroidManifest 文件中:
<activity android:name="???" android:theme="@style/Theme.Transparent"/> // see main question about this
我不知道那里应该有什么名称以及它如何与应用程序中的其他名称相对应(请参阅我的主要问题)。我找到了一些指定 activity 名称的地方。我在代码中将这些地方标记为 1、2、3、4(每个数字见其他问题)
在MainActivity.cs:
namespace CustomName // 1
{
[Activity(Name = "???" Label = "CustomName", MainLauncher = true, Icon = "@drawable/icon")] // 2
public class MainActivity : Activity // 3
{
在AndroidManifest.xml:
<application android:label="CustomName"> // 4
<activity android:name="ActivityName"> // 5
</activity>
</application>
现在提问
主要问题:我应该在 AndroidManifest.xml 中添加 activity 部分作为主要问题 activity 对其应用自定义样式? main activity 应该有什么名字?如果我在那里添加 activity 部分并为其命名,我还应该在哪里使用这个名称来使此样式与此 activity 一起使用?名字乱七八糟
代码1)应用程序命名空间名称应该是应用程序名称的字面意思?
代码 2) [Activity] Name 和 Label 标签,它们有什么用,我应该如何命名?
代码 3) public class MainActivity,这个名字对样式有影响吗?
代码 4) 这是做什么用的?
代码 5) 见主要问题
这一切是如何联系起来的?
编辑 Joe LV 的回答
AndroidManifest.xml:
<application android:label="Custom Application Name"> // this name does not appear in the phone anyway
</application>
styles.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.Transparent" parent="android:style/Theme.Translucent">
...
</style>
</resources>
MainActivity.cs:
namespace CustomName
{
[Activity(Name = "CustomName.MainActivity", Label = "Custom Activity Name", MainLauncher = true, Icon = "@drawable/icon", Theme = "@styles/Theme.Transparent")] // the phone application receives name from this label
Q1) AndroidManifest.xml 中的错误“找不到与给定名称匹配的资源(在 'theme' 处,值为 '@styles/Theme.Transparent')” 回答: 从“@styles/Theme.Transparent”
中的“样式”中删除 sQ2) phone 中的应用程序从主 activity 标签而不是应用程序标签接收名称。应用程序标签是什么以及为什么应用程序本身获得 activity 的名称?
代码 1) 可以通过更改 AndroidManifest.xml
中应用程序的标签来更改应用程序名称,如下所示:<application android:label="MyName">
,因此您的应用程序名称已更改为“MyName”,您可以在您的 phone 屏幕中看到您的应用程序命名空间仍然是 CustomName
.
代码2) [Activity] Name
和Label
标签,都可以自己改。 Name
是当前 Activity 的名称,可用于显式启动此 activity,就像@Jon 所说的那样,它应该与您的 class 名称相匹配,并且Label
是当前 Activity 的标题,您可以在 activity.
代码 3) MainActivity
的名称与样式无关。您可以在 styles.xml
文件中对其进行自定义。
代码4)请参考代码1)
代码 5) 主要问题。正如@Jon 所说,“如果您使用 [Activity] 属性,则无需将您自己的部分添加到 AndroidManifest.xml,因为它将在构建时生成条目。”
请将您的样式放入styles.xml
文件而不是CustomStyles.xml
文件,并通过Theme="@style/Theme.Transparent"
引用。 activity 名称应该是这样的:[Activity Name=package.TypeName]
,因此在您的代码中它应该是 [Activity Name=CustomName.MainActivity]
。
最后,你的 Activity 属性可以是这样的:
[Activity(Label = "YourName", MainLauncher = true,Name = "CustomName.MainActivity",Theme ="@style/Theme.Transparent")]
更新:
Q2)
- 您的应用程序由许多活动组成,每个
Activity
都有它的标签,当这个 activity 是OnResume
时可以看到标签。这将告诉用户他们在使用您的应用程序时所处的位置,因此用户不会迷失在您的应用程序中。 Application
的标签是您应用的名称,例如“Facebook”、“Google”等