Android列表视图中的重复项目

时间:2015-01-11 12:02:31

标签: android listview duplicates

我使用listview加载其中的所有数据库项,并且它可以正常工作。问题是我每次回想起我的列表视图活动填充了我的重复项目。 代码如下:

public class UserActivity extends ActionBarActivity{

public static ArrayList<String> ArrayofName = new ArrayList<String>();
private ListView listView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.user_activity);

    DataHandler db = new DataHandler(this);
    List<Data> items = db.getTitle();

    listView = (ListView) findViewById(R.id.listView1);

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, ArrayofName);

    listView.setAdapter(adapter);
}

e.g。如果我插入项目&#34; Facebook&#34;它将被插入我的数据库中,当我调用UserActivity时,它将加载数据库内容(在这种情况下是Facebook项目)并在我的listView中显示其所有内容。问题是,当我这样做时,我的listView显示我2 Facebook项目。如果我有2个项目,当我回想起UserActivity时,它会显示4个项目。

出了什么问题? 谢谢

2 个答案:

答案 0 :(得分:1)

问题在于

 public static ArrayList<String> ArrayofName = new ArrayList<String>();

它不应该是静态的,否则这将被创建一次并且它不会在下一个活动重新创建时初始化。移除静态关键字并像这样写 -

 public ArrayList<String> ArrayofName = new ArrayList<String>();

OR 当您从数据库填充satrts时,确保ArrayList没有元素。

答案 1 :(得分:1)

有两种解决方案:

1。)从

中删除static关键字
public static ArrayList<String> ArrayofName = new ArrayList<String>();

如果因任何原因无法删除关键字,请使用解决方案2。)。

2.。)在添加新条目之前,请调用clear()的{​​{1}}方法。