MvvmCross Исключение во время инфляции - PullRequest
0 голосов
/ 10 мая 2018

Может кто-нибудь, пожалуйста, помогите мне решить вопрос ниже.

Я пытаюсь обновить тему Activity из фрагмента, используя приведенный ниже код в MvvmCross.

Код

public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {
            View view=null;
            if(FragmentId==Resource.Layout.my_form)
            {
                Context contextThemeWrapper = new ContextThemeWrapper(Activity, Resource.Style.MyTheme_IntakeForm);

                // clone the inflater using the ContextThemeWrapper
                LayoutInflater localInflater = inflater.CloneInContext(contextThemeWrapper);

                view=localInflater.Inflate(Resource.Layout.my_form, container, false);

            }

Exception

Could not activate JNI Handle 0xbfa862c8 (key_handle 0x58f5101) of Java type 'mvvmcross/binding/droid/views/MvxSpinner' as managed type 'MvvmCross.Binding.Droid.Views.MvxSpinner'.

Внутреннее исключение

        {MvvmCross.Platform.Exceptions.MvxException: bindingContext is null during MvxAdapter creation - Adapter's should only be created when a specific binding context has been placed on the stack
      at MvvmCross.Binding.Droid.Views.MvxAdapter..ctor (Android.Content.Context context, MvvmCross.Binding.Droid.BindingContext.IMvxAndroidBindingContext bindingContext) [0x00032] in C:\projects\mvvmcross\MvvmCross\Binding\Droid\Views\MvxAdapter.cs:54 
      at MvvmCross.Binding.Droid.Views.MvxAdapter..ctor (Android.Content.Context context) [0x00000] in C:\projects\mvvmcross\MvvmCross\Binding\Droid\Views\MvxAdapter.cs:44 
      at MvvmCross.Binding.Droid.Views.MvxSpinner..ctor (Android.Content.Context context, Android.Util.IAttributeSet attrs) [0x00000] in C:\projects\mvvmcross\MvvmCross\Binding\Droid\Views\MvxSpinner.cs:23 
      at (wrapper dynamic-method) System.Object.5e8d0b16-077f-459f-9215-45a9d71443b1(intptr,object[])
      at Java.Interop.TypeManager.n_Activate (System.IntPtr jnienv, System.IntPtr jclass, System.IntPtr typename_ptr, System.IntPtr signature_ptr, System.IntPtr jobject, System.IntPtr parameters_ptr) [0x000df] in <ff199c98c3f84852925dd37a0ef6113a>:0 }

Спасибо

1 Ответ

0 голосов
/ 24 сентября 2018

Я думаю, вы должны убедиться, что ваш обязательный контекст не нулевой.Попробуйте добавить эту строку:

this.EnsureBindingContextIsSet(inflater);
...