2014-05-16 68 views
1

我正在設計由自定義適配器供電的ListView。在一個片段,我分配在onActivityCreated(適配器)是這樣的:ListView重複內容notifyDataSetChanged後

private List<Datas> values = new ArrayList<Datas>(); 
private MyAdapter adapter; 

@Override 
public void onActivityCreated(Bundle savedInstanceState) { 
    adapter = new MyAdapter(values, getActivity()); 
    listView.setAdapter(adapter); 
    .....} 

在應用程序後,我加載從互聯網上傳數據,我把我的價值觀是這樣的:

while(loop on every Datas items) { 
    values.add(new Datas(...)); 
} 
adapter.notifyDataSetChange(); 

當用戶向下滾動,我加載更多項目(感謝OnScrollListener,記錄),因此再次調用上一個片段。我有這樣的事情: A,B,C,D,E,F。 更新後,我有A,B,C,DE,F,A,B,C,DE ,F,G,H,I,J,K ...

第一個值出現兩次,instate只是在末尾附加。

感謝您的閱讀和幫助:)

編輯:我重新考慮我的課,有一個新的適配器,應有盡有。現在,沒有合理的解釋,它就起作用了。不管怎樣,謝謝;)

回答

1

那是因爲你正在下載已經存在的值,然後再加入他們... 你應該加入之前清除該列表,或(更好)避免下載數據已經存在在列表中

+0

喜。不,我不是,當我打電話給我的API時,我通過它的ID指定屏幕上的最後一個項目,並且請求給我20個下一個項目。但那也是我的第一次,但我必須仔細檢查一下 – Rogue

相關問題