2016-07-19 15 views
2

Wie implementiere ich MVVMCross in einem "Blank Android App" Ist es möglich, dies ohne eine Portable Class Library (PCL) zu tun?Verwendung von MVVMCross in einer leeren Android-App

Muss ich eine App.cs-Klasse erstellen (das Projekt ist nicht mit einem enthalten) und ist das überhaupt möglich?

Wenn ich dann muss, wie mache ich es?

+0

haben Sie versucht, die Dokumente zu lesen? https://mvvmcross.com/docs/getting-started – Jason

+0

@Jason, ich habe versucht, die Dokumente zu lesen, aber sie sind für eine Xamarin App, die eine PCL hat, ich möchte MVVMCross ohne PCL verwenden. –

Antwort

1

Nach einigen Nachforschungen habe ich festgestellt, dass Sie eine App.cs-Datei (dh eine Klasse, die die Android.App.Application Klasse erweitert) in einer "Blank Android App" erstellen können und daher kein PCL zur Verwendung von MVVMCross benötigen.

Sie müssen sicherstellen, dass Sie eine Implementierung des public App(IntPtr javaReference, JniHandleOwnership transfer) Konstruktors haben, und einige Leute geben an, dass Sie auch die OnCreate-Methode überschreiben müssen (wie ich getan habe).

Stellen Sie auch sicher, dass Sie in Ihrer Datei AssemblyInfo.cs keine [Application] Zeilen haben, dh. Nichts davon: [assembly: Application(Debuggable = true)]

Siehe Code unten.

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

Ein gutes Beispiel für Startes ist das TipCalc-Tutorial, das Sie auf der offiziellen Github-Seite (https://github.com/MvvmCross/MvvmCross/wiki) finden, seien Sie vorsichtig, da die meisten Tutorials für 4.0 sind. Als Beispiel:

Auf die Frage, Plattformen zu wählen, wählen Sie .NET Framework 4.5, Windows 8, Windows Phone 8 Silverlight, Windows Phone 8.1, Xamarin.Android und Xamarin.iOS - dies stellt sicher, dass die PCL ist in Profil259.

Ist veraltet, da Silverlight seit MVVMCross 4.2.2 nicht mehr unterstützt wird. Sie sollten also Profil 7 als Beispiel verwenden. Weitere Informationen für PCL-Profile hier: http://danrigby.com/2014/05/14/supported-pcl-profiles-xamarin-for-visual-studio-2/

Aber yeah Sie sollten grundsätzlich eine Portable Class Library haben, auch wenn es ohne sie funktionieren würde. Es bietet nur viele Vorteile, ohne viel Aufwand zu erfordern.

Und Sie brauchen nicht eine "App.cs", aber Sie benötigen eine Klasse, die von MvxApplication erbt. Es könnte also einfacher sein, bei diesem Namen zu bleiben, da jeder weiß, wofür er ist.

Aber nur die Tutorials zuerst, alles da drin sollte erklärt werden.

+0

Hey @Cyriac Danke für die Links zu den Tutorials, die sie wirklich gut sind, aber Sie können MVVMCross tatsächlich ohne eine PCL verwenden, siehe Antwort. –

+0

Yeah vermutete, dass es funktionieren könnte, aber immer noch kein großer Fan, um die Vorteile ohne es zu verpassen. Aber wahrscheinlich eine Wahl, abhängig vom Projekt. Aber gut zu wissen, dass es sicher geht! – Cyriac

+0

Ja, es war eine Projektanforderung –