2016-07-19 59 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

是的,這是一個項目需求 –

相關問題