我的活动ArrayAdapter<String>
中有一个onCreate
构造函数。我的问题是,每次调用包含onCreate
Constructer的Activity的ArrayAdapter
方法时,ArrayAdapter
会将项目附加到上一个onCreate
调用中的项目,因此每次调用onCreate
方法时,都会复制相同的项目。
一个例子是:
第一次调用Activity - ArrayAdapter =蓝色,黑色,棕色
第二次调用Activity - ArrayAdapter =蓝色,黑色,棕色,蓝色,黑色,棕色
第3次调用Activity - ArrayAdapter =蓝色,黑色,棕色,蓝色,黑色,棕色,蓝色,黑色,棕色
我的构造函数看起来像这样
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.adapter,colors);
基本上,我需要ArrayAdapter在对Activity onCreate
的多次调用中保持不变。
答案 0 :(得分:1)
由于每次创建Activity
时项都会附加到列表中,
所以在将元素添加到列表之前,请遵循以下条件之一。
第一种方式
onCreate(){
if(colors.size()==0){
// add the elements there};
}
第二种方式..
onCreate() {
colors.clear();
//add the elements here.
如果您每次都添加相同的项目,则首选选项1.
如果您每次都添加不同的项目,则首选选项2.
答案 1 :(得分:0)
解决此问题的最简单方法是将ArrayAdapter设置和初始化包含在活动的onCreate()方法中。这样,每次调用活动时,ArrayAdapter都会初始化为新对象,并且不会有任何先前的值要保留。