extends BaseAdapter结果覆盖以前的ArrayList项

时间:2013-01-24 08:18:24

标签: android arraylist baseadapter

我有这样的DateApapter类..

 public class DateAdapter extends BaseAdapter
    { 
    ...
    }

我使用constructor在我的“mainActivity”的12个不​​同位置调用此DateApapter,并将此结果存储在DateApapter对象“mDefaultAdapter”中,如下所示..

mDefaultAdapter = new DateAdapter(this,days,sysDate,disablePastDays, selectedDateTypeDf);

并将这种mDefaultAdapter的各种结果存储在ArrayList中,就像这样..

ArrayList<DateAdapter> mDefaultAdapterList = new ArrayList<DateAdapter>();
mDefaultAdapterList.add(mDefaultAdapter);

现在出现问题,

  • 在我的第一个调用DateAdapter构造函数中,它返回1月份 细节,我将此结果(1月)添加到ArrayList,它的工作正常。 现在ArrayList有一个Item,即January的详细信息。
  • 但是当我将第二个结果(二月)调用到arrayList时,它会覆盖第一个 结果也。现在ArrayList有两个项目,两个项目 是二月的细节。
  • 这意味着DateAdapter的最后结果填充整个ArrayList。 最后,我只从ArrayList获得了12月的详细信息。

为什么在以前的ArrayList项中覆盖DateAdapter结果? 我没有在整个程序中使用任何静态变量或方法。 请帮我解决这个问题。感谢..

2 个答案:

答案 0 :(得分:1)

我不确定您的适配器发生了什么。也许你在所有适配器上使用相同的ArrayList对象。

但我认为你应该重新考虑你的做法。

这就是我要做的事。

1-将日历事件存储在SQLite数据库中。

2-在FragmentPagerAdapter中,将位置传递到日历Fragment

3-在您的日历Fragment中,检索位置(0:1月 - 11月:12月)并查询您的数据库以检索事件。

答案 1 :(得分:0)

这是我的错误..问题是非法对象引用覆盖了我以前的ArrayList项。 我通过为Date Adapter创建一个单独的对象来保存自己。