繁体   English   中英

如何使用不同类中的数组?

[英]How can I use an array which is in a different class?

我在一个活动中设置了一个2D数组,我想将其称为片段,以便可以使用其内容。 该数组称为“名称”。 我不了解执行此操作的步骤。

您可能需要对Singleton设计模式进行一些阅读。 但与此同时,我会让您开始。

创建一个“ MyData”类,其中将包含您要共享的所有变量/数组。 然后,您只需要一个getter方法来调用该类。 完成此操作后,您将可以访问所有共享变量。 :)

示例MyData类:

public class MyData
{
    private static MyData _instance; 

    /* <Shared variables go here> */

    public String sharedVariable = "yay this is shared!";
    public String sharedVariable2 = "this is also shared!";
    public String myArray[][];

    /* </Variables> */

    public static MyData getMyData()
    {
        if(_instance == null)
            _instance = new MyData();

        return _instance;
    }
}

您要在其中设置数据的示例活动/片段:

MyData data = MyData.getMyData();

data.myArray[0][0] = "test";

您想要获取所设置数据的示例活动/片段:

MyData data = MyData.getMyData();

String result = "";
result = data.myArray[0][0];

// result will now = "test"

通过使用此结构,如果第一次调用MyData类,它将创建实例,如果已经调用了该实例,则它将简单地返回_instance,它将包含您设置的所有变量。

免责声明:当您的应用程序最小化或空闲一段时间后,Android OS会清除类中的所有变量。 您有三种选择可以避免这种情况:

  1. 将数据存储在本地文件中,然后将其加载回onResume()中的类中
  2. 从数据库中调用数据,然后在onResume()中重新加载该类
  3. 使用SharedPreferences存储数据。 然后使用onResume()中SharedPreferences中的值刷新MyData类中所有变量的值。

我通常选择选项3,因为它通常最适合我的需求。

祝好运!

将您的数组公开,然后像这样从片段中调用

OtherActivity.array []

您可以照常执行所有其他操作

  1. 单身
  2. 将其设为静态公开并调用Class.yourArray
  3. 创建一个接口并在构造函数中传递它,或者简单地使用某种方法传递它。
  4. 只需将数组作为对象传递给另一个类

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM