不同java类之间的全局变量

不同java类之间的全局变量,java,android,arraylist,Java,Android,Arraylist,我正在用android创建一个应用程序。这是一个计算器应用程序。主要活动是用户可以输入公式,第二个活动是用户可以添加/编辑/删除变量。所以我在另一个名为Global.java的文件中创建了一个新类。然后我将其扩展到应用程序,导入我需要的所有内容,生成s私有字符串,生成一些公共函数,编辑清单,并在我的主活动上初始化它。虽然我只使用一个字符串来传递函数,但当我开始添加我需要的东西,一个ArrayList,并创建一些函数以便访问列表然后运行它时,应用程序关闭了。我想这是因为arraylist不允许传递

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

如果我没有发布需要的内容,请不要否决我的帖子。我正在使用aide,因此没有日志输出。代码: 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);
    }
}
...
    String s;
... 
        global=(Global)getApplicationContext();
...
        global.setS("jian"); //this one works
        global.sList.add("jian"); // this one dont
...
照办

global.add("jian"); 
因为您有一个add函数来处理向arraylist添加项的操作

    public static ArrayList<String> sList = new Arraylist<String>();
此外,请尝试以下方法:

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

是否确实初始化了sList,如下所示:

sList = new ArrayList<String>();
sList=newarraylist();
如果没有,可能需要更改其声明以包含此初始化

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

您没有实例化arraylist

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

此外,您还应该阅读Java和android的入门教程,使用像这样的应用程序的公共扩展是个坏主意,如果Aide没有提供,您可以从不同的应用程序获得日志输出,搜索play store

检查我的编辑。尝试将您的添加功能修改为我发布的内容。