Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Xamarin:如何在运行时将以下android主题应用于我的活动?_C#_Android_Xamarin_Android Activity_Xamarin.android - Fatal编程技术网

C# Xamarin:如何在运行时将以下android主题应用于我的活动?

C# Xamarin:如何在运行时将以下android主题应用于我的活动?,c#,android,xamarin,android-activity,xamarin.android,C#,Android,Xamarin,Android Activity,Xamarin.android,我有以下活动将主题指定为属性 [Activity(Label = "PermissionsActivity", Theme = "@android:style/Theme.Translucent.NoTitleBar")] public class PermissionsActivity: Activity 这很有效,但如何在运行时应用相同的方法?可以在OnCreate中调用SetTheme。我可以看到SetTheme接受一个资源id整数。我很难找到上述主题对应的Xamarin.Android

我有以下活动将主题指定为属性

[Activity(Label = "PermissionsActivity", Theme = "@android:style/Theme.Translucent.NoTitleBar")]
public class PermissionsActivity: Activity

这很有效,但如何在运行时应用相同的方法?可以在
OnCreate
中调用
SetTheme
。我可以看到SetTheme接受一个资源id整数。我很难找到上述主题对应的Xamarin.Android常量。请帮助

将主题添加到资源文件夹下的
style.xml
文件中,然后从资源中以
int

<style name="MyTheme" parent="Theme.Translucent.NoTitleBar">
</style>

在onCreate方法中添加以下代码:

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

// Call setTheme before creation of any(!) View.
 setTheme(android.R.style.Theme_Dark);

// ...
setContentView(R.layout.main);

当您在android项目的资源下的任何文件夹中添加主题时,Visual studio所做的是在资源文件夹下的ResourceDesigner.cs文件中创建相应的int值

现在,在运行时,当您需要将它们添加到代码中时,它们可以按如下方式使用:

  • 如果资源是一种样式,则可在
    resource.style.YourResourceName
  • 如果资源是一个维度,那么它可以在
    resource.Dimen.YourResourceName
  • 如果资源是字符串,那么它可以在
    resource.string.YourResourceName
  • 如果资源是可绘制文件夹下的图像,则可在
    resource.drawable.YourResourceName
  • 如果资源是mipmap文件夹下的图像,那么它可以在
    resource.mipmap.YourResourceName
    中找到,依此类推
注意:这些属性始终是整数

在您的情况下,因为它是一个主题(基本上是一种风格)

因此,您可以在活动中获得如下信息:

this.SetTheme(Resource.Style.MyTheme);
在这样一个片段中:

this.Activity.SetTheme(Resource.Style.MyTheme);
希望这有帮助

如有疑问,请回复

this.Activity.SetTheme(Resource.Style.MyTheme);