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

时间:2014-06-26 14:51:58

标签: java android arrays

我在一个活动中设置了一个2D数组,我想把它调成一个片段,这样我就可以使用它的内容了。该数组称为“名称”。我不明白这样做的步骤。

3 个答案:

答案 0 :(得分:1)

您可能想要阅读 Singleton Design Pattern 。但与此同时,我会让你开始。

创建一个“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操作系统将清除你班级中的所有变量。您有三种方法可以避免这种情况:

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

    我通常使用选项3,因为它通常最符合我的需求。

    祝你好运!

答案 1 :(得分:0)

将您的数组公开,然后从您的片段调用,如

  

OtherActivity.array []

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

答案 2 :(得分:0)

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