如何在空白Android应用程序中使用MVVMCross

如何在空白Android应用程序中使用MVVMCross,android,xamarin,configuration,xamarin.android,mvvmcross,Android,Xamarin,Configuration,Xamarin.android,Mvvmcross,如何在“”中实现MVVMCross 在没有可移植类库(PCL)的情况下有可能做到这一点吗 我是否必须创建一个App.cs类(该项目没有附带一个),这是可能的吗 如果我必须这样做,那么我该怎么做呢?startes的一个很好的例子是TipCalc教程,您可以在官方的github页面()上找到它,但要小心,因为大多数教程都是针对4.0的,所以可能会有一些更改。例如: 当被要求选择平台时,请选择.NET Framework 4.5、Windows 8、, WindowsPhoneSilverlight8

如何在“”中实现MVVMCross 在没有可移植类库(PCL)的情况下有可能做到这一点吗

我是否必须创建一个App.cs类(该项目没有附带一个),这是可能的吗


如果我必须这样做,那么我该怎么做呢?

startes的一个很好的例子是TipCalc教程,您可以在官方的github页面()上找到它,但要小心,因为大多数教程都是针对4.0的,所以可能会有一些更改。例如:

当被要求选择平台时,请选择.NET Framework 4.5、Windows 8、, WindowsPhoneSilverlight8、WindowsPhone8.1、Xamarin.Android和 Xamarin.iOS-这将确保PCL位于Profile259中

已过时,因为从MVVMCross 4.2.2开始不再支持Silverlight。因此,您应该以概要文件7为例。有关PCL配置文件的更多信息,请参见:

但是你基本上应该有一个可移植的类库,即使没有它也可以工作。它只提供了许多优点,不需要付出太多的努力

您不需要“App.cs”,但需要一个继承自MvxApplication的类。因此,使用这个名字可能更容易,因为每个人都知道它的用途


但是只要先看看教程,里面的一切都应该解释清楚。

在做了一些研究之后,我发现你可以在“空白Android应用程序”中创建App.cs文件(即扩展
Android.App.Application
类的类),因此不需要PCL来使用MVVMCross

您必须确保有一个
公共应用程序(IntPtr javaReference,JniHandleOwnership transfer)
构造函数的实现,有些人说您还需要重写OnCreate方法(正如我所做的那样)

还要确保在AssemblyInfo.cs文件中没有任何[Application]行,即:没有:
[assembly:Application(debugable=true)]

请参阅下面的代码

using Android.App;
using Android.Runtime;
using System;

namespace YOUR.NAMESPACE
{
#if DEBUG
    [Application(Debuggable = true)]
#else
    [Application(Debuggable = false)]
#endif
    public class App : Application
    {
        public App(IntPtr javaReference, JniHandleOwnership transfer) : base(javaReference, transfer)
        {
            //Do MVVMCross setup Here
            //Mvx.RegisterType<ICalculation,Calculation>();
            //Mvx.RegisterSingleton<IMvxAppStart>(new MvxAppStart<TipViewModel>());
        }
        public override void OnCreate()
        {
            base.OnCreate();
        }
    }
}
使用Android.App;
使用Android.Runtime;
使用制度;
名称空间。名称空间
{
#如果调试
[应用程序(可调试=真)]
#否则
[应用程序(可调试=false)]
#恩迪夫
公共类应用程序:应用程序
{
公共应用程序(IntPtr javaReference,JniHandleOwnership transfer):base(javaReference,transfer)
{
//在这里进行MVVMCross设置吗
//Mvx.RegisterType();
//RegisterSingleton(新的MvxAppStart());
}
public override void OnCreate()
{
base.OnCreate();
}
}
}

您是否尝试过阅读文档@Jason,我试过阅读这些文档,但它们是针对一个有PCL的xamarin应用程序的,我想在没有PCL的情况下使用MVVMCross。嘿@Cyriac感谢教程的链接,它们真的很好,但是你可以在没有PCL的情况下使用MVVMCross,请参见答案。是的,我猜它可能会起作用,但是仍然不是一个巨大的球迷错过了没有它的优势。但这可能是一个取决于项目的选择。但很高兴知道它确实有效!是的,这是一个项目要求