2016-05-17 7 views
0

アンドロイドで自分の設定が機能しないようです。 MvxPreferenceFragmentの使い方を示すサンプルはありますか?私はFragmentを表示する方法がほとんどなく、MvxPreferenceActivityのようです。任意のMvxPreferenceFragmentサンプルコード?

悲しいことに、Androidのサンプルでは使用していません。

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

私は「通常」の活動(MvxCachingFragmentCompatActivity)でそれを試してみましたが、このアプリは、単にクラッシュします。私のフラグメントのための

コード:

[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> 

ビューモデルが空です。ただそれを表示しようとしています。何かアドバイス?

答えて

0

私はプレゼンターで修正する必要があると思います。私が現在行っていることは、Androidプロジェクト内からこれを開きます:

//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"); 
    } 
}