【问题标题】:Ordering listview after adding new items?添加新项目后订购列表视图?
【发布时间】:2015-05-09 21:15:23
【问题描述】:

我已成功将新项目更新为listview。但是,我想将它们添加到顶部而不是底部。

为了更清楚,最初我的listview 将只显示 2 条推文。如果我点击刷新,它将更新并显示下 2 条推文以及旧的 2 条推文。

最初(显示 2 条推文):

刷新后(向下的旧推文+顶部的新2条推文):

通过使用此代码,设法在顶部显示新项目

 feeds.add(0,b);

我的问题是,我希望首先出现最新的推文。但是,这里最新的推文排名第二,第二条推文排名第一。

例子:

将带有 2 项的初始 listView 视为

Tweet 1 ,
Tweet 2 .

我收到了 2 条新推文,我将添加到列表视图。 2 条新推文是,

Tweet 1_new,
Tweet 2_new.

预期结果,

Tweet 1_new,
Tweet 2_new,
Tweet 1 ,
Tweet 2 .

当前结果,

Tweet 2_new,
Tweet 1_new,
Tweet 1 ,
Tweet 2 .

第一条新推文位于底部,第二条推文位于顶部。我希望你明白了。

将新数据添加到列表视图的代码:

 for (twitter4j.Status status : statuses) {
           System.out.println(status.getUser().getScreenName() + ":" +
                    status.getText() + " | Retweet count : " + status.getRetweetCount());

            Bean b = new Bean();
            b.setsName(status.getUser().getScreenName());
            b.setTweet(status.getText());
            b.setImageurl(status.getUser().getOriginalProfileImageURL());


            System.out.println("size : " +t);

            feeds.add(0,b);
      }

在此迭代中,第一条最新推文位于底部,最后一条推文位于顶部。我只是想要它的反面。最新在顶部,最后在底部。

【问题讨论】:

  • 您希望自动更新 ListView 并在顶部插入新项目。对吗?
  • 我实现了拉取刷新。当我刷新新项目时,添加了最新项目,但最新项目下降,最后一个项目进入顶部。刷新后我想要正确的顺序。
  • 请贴出你光标的getView()方法。
  • 为什么是光标的getview?我有一个 ArrayList 并添加了所有新项目。通过 notifydatasetchanged() 函数刷新以显示新项目。
  • 通过 bean 类和 ArrayList。我通过静态数据手动传递参数,然后将该 bean 添加到 ArrayList。

标签: android listview twitter android-listview


【解决方案1】:
List<Bean> newBeans = new ArrayList<Bean>();
for (twitter4j.Status status : statuses) {
    ...
    newBeans.add(b);
}
feeds.addAll(0, newBeans);

【讨论】:

  • 您的答案被标记为低质量。请添加有关错误以及此代码为何起作用的说明。它对读者很有用,可以防止删除。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-09-17
  • 1970-01-01
  • 2016-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多