我在Mono for Android中使用MvvmCross的活动时遇到了麻烦。基本上,应用程序编译并运行,但是当我调用SetContentView时,我得到一个未处理的异常:
“Android.Views.InflateException:二进制XML文件行#1:错误膨胀类Mvx.MvxBindableListView”
在堆栈跟踪中,它提到未找到的类是原因。
这是我的活动:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Cirrious.MvvmCross.Droid.Views;
using WshLst.Core.ViewModels;
using WshLst.Core.Models;
namespace WshLst.MonoForAndroid.Views
{
[Activity(Label = "Wsh Lst - Login")]
public class LoginView : MvxActivityView<LoginViewModel>
{
ListView list;
protected override void OnViewModelSet()
{
RequestWindowFeature(WindowFeatures.ActionBar);
SetContentView(Resource.Layout.Page_LoginView);
list = this.FindViewById<ListView>(Resource.Id.mvxList);
list.ItemClick += (s, e) =>
{
var item = list.Adapter.GetItem(e.Position);
var castItem = (Cirrious.MvvmCross.Binding.Droid.MvxJavaContainer)item;
this.ViewModel.Login((WshLst.Core.Models.LoginPlatform)castItem.Object);
};
}
}
}
答案 0 :(得分:1)
您的活动需要继承MvxBindingActivityView
而不是MvxActivityView
MvvmCross内置于图层和模块中:
我们的想法是尝试为那些只想要最低限度的人提供一个“轻松”的核心框架,但为那些想要更多的人提供更复杂的框架。
这确实有一些名字可能会比较混乱下行...有更多的dll引用...和用户可以偶尔从错误级别的对象继承 - 这是你的问题在这里是什么:< / p>
MvxActivityView
继承了ViewModel
MvxBindingActivityView
也有绑定支持。有关Insert a Monogame view inside MvvmCross monodroid Activity
的2层内容的更多信息答案 1 :(得分:0)
新原因:MvxBindableListView重命名为MvxListView。但到目前为止,上述情况令人困惑。因为我继承自MvxFragment,我认为这是原因,并试图理解和实现Stuart所写的内容......然后我记得有关重命名类的事情,然后很快发现:)