簡體   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