我正在将应用程序从 windows mobile 移植到 android,但遇到了一些问题。现有应用程序使用 MVP 模式并具有不同的“presenter”类,这些类将在端口中重用(这是一个相当广泛的应用程序,重写它是不可能的,并且 C# 代码都使用 mono for android 重用)。这些采用实现接口的视图,在android中我通过创建实现适当接口的活动、实例化演示者并将自己作为参数传递来实现。对于我们的目的,这一切似乎都可以正常工作,或者直到冰淇淋三明治出现并且我尝试使用片段来实现它。
相当多的活动使用选项卡,为了使用操作栏和其他一些新功能,我正在尝试使用查看器将选项卡式活动转换为选项卡式片段,这就是我遇到一些问题的地方。从我所阅读的内容来看,将每个选项卡实现为片段似乎是首选方法,但我对如何允许演示者通过活动与片段进行通信感到困惑。目前演示者调用活动的接口方法,然后直接访问微调器、文本视图等以根据需要获取和设置值。由于这些 ui 元素中的每一个都在活动中声明,这很简单。如果我将所有这些 ui 元素移动到片段中,但它不会 似乎我可以访问它们,而无需在每个活动和片段之间实现一套全新的接口。我尝试在活动中生成对片段中 ui 元素的引用(通过获取片段根视图,然后在其中找到我想要的视图),但是 viewpager 并不总是加载片段,所以这不起作用,即使它已经加载了它们,布局也不会膨胀,直到活动处于运行状态,所以我总是返回空值。
我知道这是一个奇怪的问题,但是我怎样才能让我的演示者类与现在存储在单独的片段选项卡中的 ui 元素进行交互?我觉得我必须以完全错误的方式去做,但我只是看不出应该如何去做,所以如果有人能就我如何去做这件事提供一些建议,那就太好了。