【发布时间】:2017-12-11 18:14:56
【问题描述】:
只需要澄清我应该命名什么,在哪里以及如何将自定义样式应用于主要活动。
我想将自定义样式“Theme.Transparent”应用到来自 CustomStyles.xml 文件的主要活动。为此,您应该将以下部分添加到 AndroidManifest 文件中:
<activity android:name="???" android:theme="@style/Theme.Transparent"/> // see main question about this
我不知道应该在那里使用什么名称以及它与应用程序中的其他名称的对应关系(请参阅我的主要问题)。我发现了一些您指定活动名称的地方。我在代码中将这些地方标记为 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 部分并为其命名,我还应该在哪里使用此名称以使此样式与此活动一起使用?名字乱七八糟
代码 1) 应用程序命名空间名称应该是应用程序名称的字面意思吗?
代码 2) [Activity] 名称和标签标签,它们是做什么用的,我应该如何命名?
代码 3)公共类 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”中删除 s样式/Theme.Transparent”
Q2)手机中的应用程序从主活动标签接收名称,而不是从应用程序标签接收名称。应用程序标签的用途是什么?为什么应用程序本身会获得活动的名称?
【问题讨论】:
-
<activity android:name>值应与您的class名称匹配,该名称是Activity的子类。如果您使用[Activity]属性,则无需将您自己的部分添加到AndroidManifest.xml,因为它将在构建时生成条目。您可以使用[Activity Name=]指定名称。 -
A
subclass是一个继承另一个类的类。因此,在您的示例中将是您的MainActivity -
不,我不是那个意思。 MainActivity 是 Activity 的子类。你的错误是因为你在
styles上有一个s,而正确的用法是style。 -
请不要通过破坏您的帖子为他人增加工作量。通过在 Stack Exchange 网络上发帖,您已在 CC BY-SA 4.0 license 下授予 Stack Exchange 分发该内容的不可撤销的权利(即无论您未来的选择如何)。根据 Stack Exchange 政策,帖子的非破坏版本是分发的版本。因此,任何破坏行为都将被撤销。如果您想了解更多关于删除帖子的信息,请参阅:How does deleting work?
-
您现在可能已经意识到:我们发现破坏行为几乎是在它完成的那一刻,我们每次都会恢复它。请停止为他人做更多的工作。
标签: android visual-studio xamarin android-activity android-manifest