【发布时间】:2012-01-29 06:57:54
【问题描述】:
我有一个类在 Android tabHost 应用程序中扩展应用程序。在 App 类中,我一直在放置方法和变量,否则我需要在每个类中重新创建它们。一种方法从数据库中读取并将结果存储在 ArrayList 中(例如名字,姓氏)。我没有重新读取该数据库并为每个需要该信息的选项卡视图重新创建代码,而是将方法和 ArrayList 固定在扩展 Application (myAppClass) 的类中。这样,通过在 onCreate() 的任何选项卡视图中设置 mAC = (myAppClass) getApplicationContext(),我可以引用 myAppClass 中的所有 get..() 和 set..() 方法。
我最初的计划是使用带有静态方法和变量的共享类,但我读了很多“不要那样做”的帖子,所以决定走应用程序路线。现在,我遇到了一种情况,我试图在项目库中使用 myAppClass 但收到有关 android.app.Application cannot be cast to... 的错误如果我将 myAppClass 改回静态方法/变量(并且不扩展应用程序),那么一切正常,但这应该是一个很大的禁忌。还有另一种方法可以做到这一点吗?不确定Android是否通过引用传递所有内容,但我最好通过在方法/类之间来回传递巨大的(数千个对象/成员)ArrayLists来重新实现整个应用程序吗?
【问题讨论】:
-
只有一个Application实例。无需使用 getter 和 setter。只需在您的子类应用程序中使用静态方法/变量并以这种方式使用它们:MyApplication.myMethod() ...
标签: android methods static parameter-passing