2014-01-09 40 views
0

我在android中創建一個應用程序。它的計算器應用程序。主要活動是用戶可以輸入公式的地方,第二個活動是用戶可以添加/編輯/刪除變量的地方。所以我在另一個名爲Global.java的文件中創建了一個新類。然後我將其擴展到應用程序,導入我需要的所有東西,製作私有字符串,製作一些公共函數,編輯清單,並在我的主要活動中對其進行初始化。一切工作正常,而即時通訊只使用字符串傳遞的功能,但是當我開始添加我需要的,一個ArrayList,並做了一些功能,所以我可以訪問列表然後運行它,應用程序關閉。我認爲它是因爲數組列表不允許被傳遞給不同的類?我是對的還是我錯過了什麼?不同類之間的全局變量java

請不要downvote我的帖子,如果我沒有發佈需要的東西。我正在使用助手,所以沒有日誌輸出。代碼: Global.java

... 
import android.app.*; 
import java.util.*; 

public class Global extends Application 
{ 
    private String s; 
    public static ArrayList<String> sList; 

    public String getS() { 
     return s; 
    } 
    public void setS(String ss) { 
     s=ss; 
    } 
    public void add() { 
     sList.add(s); 
    } 
} 

MainActivity.java

... 
    String s; 
... 
     global=(Global)getApplicationContext(); 
... 
     global.setS("jian"); //this one works 
     global.sList.add("jian"); // this one dont 
... 

回答

0

只是做

global.add("jian"); 

,因爲你有一個附加功能,照顧加項的到arraylist。

此外,嘗試這樣的:

public void add(String ss) { 
    sList.add(ss); 
} 
+0

試過一次,nevor的作品。 –

+0

檢查我的編輯。嘗試修改你添加的功能到我發佈的內容。 – SoulRayder

2

你確定初始化SLIST,像這樣:

sList = new ArrayList<String>(); 

如果你沒有,你可能要改變其聲明包括該初始化。

public static ArrayList<String> sList = new ArrayList<String>(); 
0

你沒有實例化你的數組列表。

public static ArrayList<String> sList = new Arraylist<String>(); 

另外,應於Java和Android閱讀的初級教程,使用應用程序的公共推廣這樣是一個壞主意,你可以得到記錄從不同的應用程序的輸出,如果助手不提供,搜索Play商店