2016-05-17 14 views
0

Ich kann nicht scheinen, meine Einstellungen auf Android zu arbeiten. Gibt es ein Beispiel für die Verwendung des MvxPreferenceFragment? Mir fehlt meistens eine Möglichkeit, die Fragment, wie eine MvxPreferenceActivity zu zeigen.Beliebiger MvxPreferenceFragment-Beispielcode?

Leider verwenden die Beispiele für Android es nicht.

https://github.com/MvvmCross/MvvmCross-AndroidSupport/blob/master/Samples/Example.Droid/Resources/layout/fragment_settings.axml

habe ich es mit einer "normalen" Tätigkeit versuchen (MvxCachingFragmentCompatActivity), aber die App einfach abstürzt.

-Code für mein Fragment:

[MvxFragment(typeof(SettingsViewModel), Resource.Id.flContent, true)] 
[Register("client.android.fragments.SettingsFragment")] 
public class SettingsFragment : MvxPreferenceFragment<SettingsSyncViewModel> 
{ 
    public override void OnCreatePreferences(Bundle p0, string p1) 
    { 
     // Load the preferences from an XML resource 
     AddPreferencesFromResource(Resource.Xml.preferences); 
    } 
} 

preferences.xml:

<?xml version="1.0" encoding="utf-8" ?> 
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> 
    <PreferenceCategory 
     android:title="Category Title" 
     android:key="pref_key_storage_settings"> 
    <CheckBoxPreference 
     android:key="pref_sync" 
     android:title="CheckboxStuff" 
     android:summary="Checkbox..." 
     android:defaultValue="true" /> 
    <Preference 
       android:key="pref_key_limit" 
       android:summary="Stuff ..." 
       android:title="Hello World" /> 
    </PreferenceCategory> 
</PreferenceScreen> 

Ansicht Modelle leer sind. Ich versuche nur, es zu zeigen. Irgendein Rat?

Antwort

0

Ich denke, das sollten wir im Presenter beheben. Was ich gerade mache, ist das Öffnen innerhalb des Android-Projekts:

//ViewModel is loaded here to support popup fragments 
private PreviewViewModel previewViewModel; 
public PreviewViewModel ViewModel => previewViewModel = previewViewModel ?? Mvx.IocConstruct<PreviewViewModel>(); 


public void ShowDetail() 
{ 
    var activity = Mvx.Resolve<IMvxAndroidCurrentTopActivity>().Activity as MvxCachingFragmentCompatActivity; 
    if (activity != null) 
    { 
    var dialog = new PreviewDialogFragment() { DataContext = ViewModel }; 
    dialog.Show(activity.SupportFragmentManager, "preview"); 
    } 
}