【问题标题】:"global" array with different data types - Android具有不同数据类型的“全局”数组 - Android
【发布时间】:2014-01-14 19:52:51
【问题描述】:

我是 Android 编程新手,所以也许我的问题很容易解决,但仍然如此。我正在尝试创建一个不同数据类型的数组:

我必须在那里添加:

   int number
   String name 
   int number_2
   int time
   int total


我现在的问题是如何以最简单的方式实现它,以及如何从中获取数据。如果我必须为此变量获取不同的记录并将其存储到 list 中。
还有一个关于如何将我处理的所有值保存在数组中的问题。 我必须保留它,因为在我的程序中我必须回到其他活动继续进行另一个活动并再次收集数据并将其添加到我的数组中。

最好和最简单的解决方案是什么?

提前感谢您的帮助

【问题讨论】:

    标签: android arrays list


    【解决方案1】:

    您可以将数组创建为对象数组。所有其他类都派生自Object,因此您将能够在数组中存储所有类型的对象。但是,您必须先检查从数组中获得的对象的类型,然后才能安全地解释为特定类的对象。此外,您必须使用 Integer 而不是 int。

    如果您打算存储在数组中的所有(或至少多个)元素都属于一个(物理)实体,您可以创建一个自定义Class,将其自己的属性作为类成员,并填充您的数组,其中包含此 Class 的实例列表。

    此外,如果您打算向 Array 添加元素,则应使用 List 代替,例如一个ArrayList

    至于保留数据,您必须将其存储在数据库中,或将其保存到文件中。无论哪种方式,您都必须在 Activity 关闭时保存它,并在 Activity 启动后再次加载它

    【讨论】:

      【解决方案2】:

      要跨活动传递数据,您需要使用可以存储在意图中的对象来传递它们。似乎最好的处理方法是创建一个 PREFS 文件来存储数据或创建一个扩展 Parcelable 的对象,如下所示:

      https://stackoverflow.com/questions/18593619/android-parcelable-object-passing-to-another-activity

      如果您需要单个对象中的所有数据,您不想“放置额外”一堆字段并且您还希望确保数据可以从一个活动传递到另一个活动,则最好使用 Parcelables。否则,可以使用一个简单的 Util 类来读取和写入 PREFS 文件:

      android read/write user preferences

      数据库始终是另一种选择,但似乎超出了您的问题范围。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-07-24
        • 2015-07-10
        • 1970-01-01
        • 2017-03-25
        • 2022-10-08
        • 1970-01-01
        • 2015-12-19
        • 1970-01-01
        相关资源
        最近更新 更多