ArrayAdapter <string>使用Activity onCreate重复项目</string>

时间:2014-02-24 23:12:22

标签: android android-arrayadapter

我的活动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的多次调用中保持不变。

2 个答案:

答案 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都会初始化为新对象,并且不会有任何先前的值要保留。