为了使Android SDK与我的演示者类完全脱钩,我试图找出避免访问我们通常使用R的资源ID的最佳方法。我以为我可以创建一个接口来访问字符串资源之类的东西,但是我仍然需要ID来引用字符串。如果我要做类似的事情...
public class Presenter {
private MyView view = ...;
private MyResources resources = ...;
public void initializeView() {
view.setLabel(resources.getString(LABEL_RES_ID);
}
}
我仍然必须将LABEL_RES_ID
其映射到R.string.label
我的资源桥中。之所以很酷,是因为我可以在进行单元测试时将其换成其他东西,但是我不想管理另一个到字符串值的映射。
如果我放弃而仅使用R.string值,则演示者将再次绑定到我的视图。那不理想吗?人们是否可以使用一种更简单的解决方案来解决此问题,以使他们远离演示者。我不想以Android提供的方式之外的方式来管理字符串,因为我仍然想将它们放入布局文件中并获得国际化的好处,等等。我想进行一个愚蠢的单元测试,使其可以与该演示者一起使用无需让Android SDK生成R.java文件。这太多了吗?
我认为没有理由在Presenter中调用任何android代码(但您始终可以做到)。
因此,在您的情况下:
查看/活动onCreate()调用-> presenter.onCreate();
演示者onCreate()调用-> view.setTextLabel()或您在视图中需要的任何内容。
始终将Android SDK与演示者分离。
在Github中,您可以找到有关MVP的一些示例:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句