如何显示一些最新的项目列表视图?

时间:2018-04-29 18:16:02

标签: android listview

我创建了一个连接到数据库的listview。我想展示一些将在随机时间添加的最新项目(可能是10个最新项目)?我怎么能做到这一点?这就是我的尝试:

int i = String.valueOf(mKondisiList));
for(i = 0; i<=5 ; i++ ){
  mKondisiList = myDbHelper.getListKondisi();
  adapterKondisi = new ListKondisiAdapter(this, mKondisiList);
  lvKondisi.setAdapter(adapterKondisi);
  Collections.reverse(mKondisiList);
}

但这不起作用。

1 个答案:

答案 0 :(得分:0)

很抱歉,但这段代码没有任何意义。

int i = String.valueOf(mKondisiList));
for(i = 0; i<=5 ; i++ ){
  mKondisiList = myDbHelper.getListKondisi();
  adapterKondisi = new ListKondisiAdapter(this, mKondisiList);
  lvKondisi.setAdapter(adapterKondisi);
  Collections.reverse(mKondisiList);
}

解释你做了什么;

  • 您将从数据库中获取列表
  • 初始化列表适配器
  • 将适配器设置为列表
  • 然后反转您的列表顺序(但您没有通知适配器)

你正在循环中完成5次。

您需要做的是:

  • 从数据库中获取您的列表
  • 然后反转您的清单顺序
  • 初始化列表适配器
  • 将适配器设置为列表

我应该是这样的:

mKondisiList = myDbHelper.getListKondisi();
Collections.reverse(mKondisiList);
adapterKondisi = new ListKondisiAdapter(this, mKondisiList);
lvKondisi.setAdapter(adapterKondisi);

如果您只想展示有限数量的商品,可以执行以下操作:

ArrayList<Object> fullList = new ArrayList<>();
fullList = myDbHelper.getListKondisi();
Collections.reverse(fullList);
//Add first 10 item to your mKondisiList
for (int i = 0; i < 10; i++) {
    mKondisiList.add(fullList.get(i));
}
adapterKondisi = new ListKondisiAdapter(this, mKondisiList);
lvKondisi.setAdapter(adapterKondisi);