簡體   English   中英

將數組對象推送到 Array 或 ArrayList 並從 Android 中的另一個類訪問它

[英]Pushing an object of arrays to an Array or ArrayList and access it from another class in Android

我有一個數組對象,我將它推送到這樣的 ArrayList 中:

static ArrayList<String> jsonResponse = new ArrayList<>();

//inside the method
strResp = response.body().string(); //the response I get from the server
jsonResponse.clear();  //clear the array first
jsonResponse.add(strResp);

現在從另一個類,我像這樣訪問它,但我無法打印它,因為它說 NULL:

public class SecondClass extends ReactContextBaseJavaModule {

private FirstClass firstclass;

  public void getLocks(Callback callback) {
  System.out.println("Print object: " + firstclass.jsonResponse);
  }
}

第一個問題,在這種情況下,ArrayList 是實現我想要的正確方法嗎?

第二個問題,為什么我無法在其他班級中打印它?

我在 Android/Java 方面沒有任何經驗,所以我知道這對你們中的許多人來說聽起來可能是一個愚蠢的問題,但請嘗試理解!

您正在創建 FirstClass 變量,但並未啟動它。 FirstClass 是一個包含 jsonResponse 列表的對象。 如果未啟動對象,則列表本身將始終為空。 您需要像這樣調用 FirstClass 的構造函數:

firstclass = FirstClass(<add parameters here if any>);

希望這可以幫助 :)

您在類中創建字符串的私有列表,然后嘗試從另一個類訪問它。 另外你的對象還沒有初始化

1)在每次插入字符串之前的代碼中,您清除列表。 因此,如果您不使用多個字符串,請使用 String。

2)初始化您的對象並在靜態之前添加“公共”,它應該可以工作。 IE:

firstclass = FirstClass();

public static ArrayList<String> jsonResponse = new ArrayList<>();

在 Java 中訪問靜態元素,您不需要類(FirstClass)的實例。 你只是做

FirstClass.jsonResponse();

你得到 null 的原因是因為你試圖打印 List 對象,它不是一個字符串,而是一個字符串列表。 因此,請執行以下操作:

if(!jsonResponse.isEmpty()){
    //print the first String in the List
    jsonResponse.get(0);
}

要回答您的另一個問題,LinkedList 具有更多功能,但 List 速度更快。 查看更多解釋

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM