【问题标题】:Android Base Activity: Base's Global Variables, Can't get from some activitesAndroid Base Activity:Bases Global Variables,无法从某些活动中获取
【发布时间】:2012-07-07 00:48:36
【问题描述】:

我现在正在学习一个 android 课程,所以我对 android 应用程序开发有点陌生。

我对基本活动的第一个假设是它是全局变量,并且它的值可用于所有活动。我发现它可用于我的主要活动,但之后没有任何活动。

在基本活动中,我存储了一个对象的 ArrayList。我还从那里的 xml 加载数据,将对象添加到 arrayList。一旦进入主活动,我仍然可以访问该 arrayList 及其值。我用它来填写清单。但是当我进入下一个活动时,它知道arrayList但认为它是空的。

我是否需要在基本活动中创建方法来检索数组列表并将对象添加到数组列表?

任何帮助将不胜感激。

谢谢,

米歇尔

【问题讨论】:

    标签: android global-variables


    【解决方案1】:

    全局变量需要声明为static。然后他们可以从任何班级访问。示例:

    public class Globals {
        public static String myString;
    }
    

    任何类都可以像这样读/写 myString:

    Globals.myString = "foo";
    

    String bar = Globals.myString;
    

    【讨论】:

      【解决方案2】:

      根据经验,我相信一个活动的变量仅在活动处于活动状态时对另一个活动有效,这意味着在 onCreate 和 onDestroy 之间,否则您可能会收到空指针异常,您真正应该做的是将数据或数组连同意图一起发送到其他活动。

      我认为您不应该调用其他活动变量,尽管如上所述是可能的。我相信当活动拥有它的 onDestroy 方法时,活动中的对象被销毁并从内存中删除。摧毁他们持有的任何东西。

      这个基础活动是什么?它只是扩展活动吗?然后 MainActivity 也在扩展 Activity 吗?任何时候只有一个活动可用,如果你在做我认为你在做的事情,你应该有一项服务可以在应用程序的整个周期内为你提供一切,只要记住在完成后停止它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-03-29
        • 1970-01-01
        • 2021-10-20
        • 1970-01-01
        • 2021-10-11
        • 1970-01-01
        • 2019-03-08
        相关资源
        最近更新 更多