Android创建静态ArrayList
我正试图从我的android应用程序中删除arrayList中的值,但它们不断出现 我的arrayList在一个单独的类中, 在我的主活动中,我创建了该类的一个实例,并从数组中删除了一个值。 我退出主活动并返回重新出现的值 我的问题是,我怎样才能创建数组类的某种静态实例Android创建静态ArrayList,android,arraylist,static,Android,Arraylist,Static,我正试图从我的android应用程序中删除arrayList中的值,但它们不断出现 我的arrayList在一个单独的类中, 在我的主活动中,我创建了该类的一个实例,并从数组中删除了一个值。 我退出主活动并返回重新出现的值 我的问题是,我怎样才能创建数组类的某种静态实例 //ArrayClass public class ArrayClass { public final static ArrayList<String> words = new ArrayList<St
//ArrayClass
public class ArrayClass {
public final static ArrayList<String> words = new ArrayList<String>();
public ArrayClass() {
words.add("WORD");
words.add("WORD");
words.add("WORD");
}
//Main Class
ArrayClass wordc = new ArrayClass();
@Override
protected void onCreate(Bundle savedInstanceState) {
wordc.removeWord(0);
}
//ArrayClass
公共类数组类{
public final static ArrayList words=new ArrayList();
公共ArrayClass(){
词语。添加(“词语”);
词语。添加(“词语”);
词语。添加(“词语”);
}
//主类
ArrayClass wordc=新的ArrayClass();
@凌驾
创建时受保护的void(Bundle savedInstanceState){
字c.删除字(0);
}
我可能对您正在做的事情感到困惑,但是要访问静态数组
您不想创建类的实例。每次您这样做时,您都在运行构造函数,在示例代码中,构造函数每次都用3个值填充静态数组
我看不出你到底想完成什么,所以也许你可以解释得更清楚一点,但我猜这并不是你想要你的构造函数做的。我想你想静态地访问数组
本身
//Main Class
ArrayClass wordc = new ArrayClass();
@Override
protected void onCreate(Bundle savedInstanceState) {
wordc.removeWord(0); //don't need this
ArrayClass.words.remove(0); // would remove the element at index 0
}
但这仍然不能解决您的问题。您需要在ArrayClass
类中使用一个方法,将项添加到Array
中。在构造函数中执行此操作将在每次创建类的新实例时添加这些项
如果这不能回答您的问题,那么您可以更好地解释您的作业。您尝试过单例模式吗?您将有一个ArrayClass的静态引用,并且它的内部状态不会被活动生命周期违反
public class ArrayClass {
private static ArrayClass instance;
public static ArrayClass getInstance() {
if(instance == null) instance = new ArrayClass();
return instance;
}
//...rest goes as is.
Orest是正确的,您确实需要单例模式,但请记住,当您访问类的方法时,始终需要使用getInstance()方法 例如,类中的方法:
public String getWord(index i) {
.......
}
应按如下方式静态调用
ArrayClass.getInstance().getWord(i);
不是这样的
wordc.getWord(i);
这保证了只有一个实例(因此是单实例)对不起,关于混乱的问题,我需要把数组的状态从应用程序的生命周期中排除出来,所以当我回到主程序时,数组的实例和我离开时的状态是一样的…谢谢你的回答!这应该是可接受的答案。所有这些单单的答案都是可怕的。这不是C++的人,把单身者留在哪里。他们是属于他们的。+1是最好的回应。迈克,我试试看:)