[英]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.