gpt4 book ai didi

Android:如何最好地将数据传递给 View ?

转载 作者:太空宇宙 更新时间:2023-11-03 10:31:17 25 4
gpt4 key购买 nike

我有一个 View 显示我游戏的所有级别。这些级别由 Activity 读取,然后传递到 View 中。我可以从 View 中读取它们,但这并不是它的真正责任,而且我是关注点分离的粉丝。

现在,我正在为此调用 setter:

((GameView) findViewById(R.id.game)).setLevels(loadLevels());

但是,我不喜欢这样的事实,即如果我忘记调用 setter, View 将无法正常工作。有没有更好的方法来传递关卡?

最佳答案

这也有点偏好问题。从理论上讲,按照您的方式通过关卡是完全可以的。或者,如果您不仅需要设置级别,还需要提供更多功能(即还保存级别),我通常使用一个单独的类负责处理此类事情(即一个存储库、一些“管理器”类等)。然后将此类传递到构造函数上的 View 中,最好是 s.t.一个人被迫提供它。当然,为了分离事物,我使用接口(interface)而不是具体的实现s.t.它可能看起来如下:

public class MyView {

public MyView(ILevelLoader levelLoader){
this.levelLoader = levelLoader;
}

...
}

通常,这可能行不通,因为 View 是由框架直接实例化的,而不是由应用程序实例化的。在这种情况下,您被迫通过适当的二传手来完成。这是某种 MVC/MVP 模式。

为了您的兴趣,您可能还想看看 IoC containers和依赖注入(inject)。 Guice由 Google 提供的是一个很好的框架,我已经在 Android 上使用过。

关于Android:如何最好地将数据传递给 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4914549/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com