2016-07-19 18 views
2

如何在“Blank Android App” 中实现MVVMCross是否可以在没有可移植类库(PCL)的情况下执行此操作?如何在空白的Android应用程序中使用MVVMCross

我必须创建一个App.cs类(该项目不包含一个),甚至可能吗?

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

+0

您是否试过阅读文档? https://mvvmcross.com/docs/getting-started – Jason

+0

@Jason,我试过阅读文档,但他们是为一个有PCL的Xamarin应用程序,我想使用MVVMCross而没有PCL。 –

回答

1

经过一番研究,我发现你可以在'Blank Android App'中创建一个App.cs文件(即一个扩展Android.App.Application类的类),因此不需要PCL来使用MVVMCross。

您必须确保您有一个public App(IntPtr javaReference, JniHandleOwnership transfer)构造函数的实现,并且有些人声明您还需要重写OnCreate方法(正如我所做的那样)。

还要确保在你的AssemblyInfo.cs文件中你不要有任何[应用程序]行,即。这不是:[assembly: Application(Debuggable = 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(); 
     } 
    } 
} 
2

一个很好的例子就是TipCalc-Tutorial,你可以在官方的github页面上找到(https://github.com/MvvmCross/MvvmCross/wiki),因为大多数教程都是4.0,所以可能会有一些变化。作为一个例子:

当记者问到选择的平台,选择的.NET Framework 4.5,Windows 8中, 的Windows Phone 8的Silverlight的Windows Phone 8.1,Xamarin.Android和 Xamarin.iOS - 这将确保PCL在Profile259中。

自从MVVMCross 4.2.2开始不再支持Silverlight以来已经过时了。所以你应该使用Profile 7作为例子。更多信息在这里PCL配置文件:http://danrigby.com/2014/05/14/supported-pcl-profiles-xamarin-for-visual-studio-2/

但是,是的,你基本上应该有一个可移植的类库,即使它没有它的工作。它只需要很多优点而不需要太多的努力。

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

但只是先看看教程,那里的一切都应该解释。

+0

嘿@Cyriac感谢教程的链接,他们真的很好,但是您可以在没有PCL的情况下使用MVVMCross,请参阅答案。 –

+0

是的,它猜测它可能有效,但如果没有它,它仍然不是一个巨大的粉丝。但可能取决于项目的选择。但很高兴知道它确实有效! – Cyriac

+0

是的,这是一个项目需求 –

相关问题