2016-05-17 4 views
0

Не может показаться, что мои настройки работают на Android. Есть ли образец, показывающий, как использовать 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"); 
    } 
} 
Смежные вопросы