Xamarin Android创建活动列表

时间:2018-07-17 11:47:00

标签: android multithreading xamarin.android

我正在将应用程序从WinCE移植到Android。 此应用使用MVP模式。

最主要的事情之一是ViewProvider(活动提供程序),它保存所有活动(实例)并可以返回您需要的活动(对于状态机非常有用)。

public List<IView> Views { get; protected set; }
public virtual void Init()
{
    Views.Add(new MasterView());
    Views.Add(new LoginView());
    Views.Add(new MainMenuView());
}
public T GetView<T>() where T : InView
{
    return (T)Views.FirstOrDefault(view => view is T);
}

所有这些视图都继承了位于类库中的继承的基本活动。 例如:

[Activity(Label = "MasterView")]
    public class MasterView : BaseView, IMasterView
    {
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            // Create your application here
        }
    }

public class BaseView : Activity, IView  //is in class library project
    {
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            SetContentView(Resource.Layout.baseview);
        }
    }

因此,当Init方法开始添加新的MasterView时,我会收到错误消息“ Java.Lang.RuntimeException:无法在未调用Looper.prepare()的线程内创建处理程序”

我应该如何创建此活动列表以在需要时进行一些活动?还是Xamarin Android上非常糟糕的做法? 预先感谢!

0 个答案:

没有答案