Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.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
如何使用xamarin和f#创建新的android活动?_Xamarin_Android Intent_F#_Xamarin.android - Fatal编程技术网

如何使用xamarin和f#创建新的android活动?

如何使用xamarin和f#创建新的android活动?,xamarin,android-intent,f#,xamarin.android,Xamarin,Android Intent,F#,Xamarin.android,我试过这个: let intent = new Intent(this, typeof<SettingsActivity>) this.StartActivity(intent) let intent=new intent(这个,typeof) 这就是我们的目标 但它给了我一个错误 在此程序点之前,无法根据类型信息确定方法意图的重载。候选项:Intent(packageContext:Context,cls:Java.Lang.Class):单元,Intent(packageCo

我试过这个:

let intent = new Intent(this, typeof<SettingsActivity>)
this.StartActivity(intent)
let intent=new intent(这个,typeof)
这就是我们的目标
但它给了我一个错误

在此程序点之前,无法根据类型信息确定方法意图的重载。候选项:Intent(packageContext:Context,cls:Java.Lang.Class):单元,Intent(packageContext:Context,type:type):单元

我想不出如何解决这个错误。请帮忙。Thx

更新:我将typeof更改为typedef of,并将其更改为this.ActivityContext,但在中显示未找到设置活动。这是我的设置活动文件:

namespace Math

[<Activity (Label = "SettingsActivity")>]
type SettingsActivity () =
  inherit Activity()

  override this.OnCreate(bundle) =
    base.OnCreate (bundle)
    // Create your application here

    this.SetContentView(Resources.Layout.Settings)
名称空间数学
[]
类型设置活动()=
继承活动()
重写此.OnCreate(包)=
base.OnCreate(bundle)
//在此处创建应用程序
this.SetContentView(Resources.Layout.Settings)
我在两个文件的开头都有相同的名称空间声明。
可能会出现错误,因为f#找不到类设置活动。

如果您的代码与您发布的代码完全相同,则问题是

typeof<SettingsActivity>
typeof
您应该使用typedef而不是:

let intent = new Intent(this, typedefof<SettingsActivity>)
this.StartActivity(intent)
let intent=new intent(此,typedefof)
这就是我们的目标

除此之外,确保当前类实际上是“this”,即您使用此代码的方法是将对当前类的引用定义为“this”

this的类型是什么?你能试着用
this:>Context
把它转换成
Context
吗?看看这个C#问题,也许你需要像
Intent(this.ApplicationContex,typeof)
这样的东西。我试过用typedefof,我认为这很好,但它仍然不起作用,因为它说找不到SettingsActivity。请确保包含SettingsActivity的文件高于包含调用该活动的代码的文件。签出以获取更多详细信息这是我的问题,但如何让f#先处理SettingsActivity类,然后处理MainActivity类而不必将其放入单个文件中。如果Activity属性中的MainActivity具有MainLauncherActivity=true,则在设置Activity之前不需要拥有MainActivity。或者在MainActivity和SettingsActivity之间是否存在循环依赖关系?如果是的话,那么这就是F#设计要击败的东西。首选的方法是回到绘图板,找出它们如何在不需要相互参照的情况下进行交互。“解决方法”是使用“with”关键字将它们声明在一个文件中(我不认为将它们放在一个文件中就可以了)。如果您是F#新手,请查看一些关于如何处理循环依赖关系的建议。我建议您阅读该网站上的文章——这在我刚开始使用该语言时对我帮助很大。