我在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
...
答案 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没有提供,搜索游戏商店