不同类java之间的全局变量

时间:2014-01-09 08:42:03

标签: java android arraylist

我在android中创建了一个应用程序。它是一个计算器应用。主要活动是用户可以输入等式的位置,第二个活动是用户可以添加/编辑/删除变量的位置。所以我在另一个名为Global.java的文件中创建了一个新类。然后我将它扩展到应用程序,导入我需要的所有内容,制作私有字符串,制作一些公共函数,编辑清单,并在我的主要活动上初始化它。一切正常,而我只使用一个字符串来传递函数,但当我开始添加我需要的东西,一个ArrayList,并做了一些功能,所以我可以访问列表然后运行它,应用程序关闭。我认为是因为arraylist不允许被传递到不同的类?我是对的还是我错过了什么?

如果我没有发布需要的东西,请不要低估我的帖子。我正在使用助手,所以没有日志输出。码: 的 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
...

3 个答案:

答案 0 :(得分:2)

您确定已初始化sList,如下所示:

sList = new ArrayList<String>();

如果没有,您可能希望更改其声明以包含此初始化。

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

答案 1 :(得分:0)

只做

global.add("jian"); 

因为你有一个add函数来处理将项添加到arraylist。

另外,试试这个:

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

答案 2 :(得分:0)

你没有实例化你的arraylist。

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

另外你应该阅读关于Java和android的初学者教程,使用像这样的应用程序的公共扩展是一个坏主意,你可以从不同的应用程序获得日志输出,如果Aide没有提供,搜索游戏商店