android listview分页实现

时间:2012-02-09 09:13:45

标签: java android web-services android-listview

您正在使用Android应用程序。我在一些活动中使用了listview。

问题是我显示的所有列表视图都要长得多,因此用户需要滚动整个列表才能找到最后一项。

我试图为此实现分页,比如说最初只需要在listview上显示20个项目。在我的listview结束时,我需要一个标题栏,其中包含下一个&以前的按钮和单击下一个按钮列表视图将加载21到40之间的下一个记录,依此类推。

使用java rest webservice加载listview。

任何人都可以给我一个很好的建议来解决我的问题。?

5 个答案:

答案 0 :(得分:1)

解决方案1:

如果数据不太多,您可以一次加载所有数据,并将其存储在本地&然后您可以在本地存储的数据中导航。定义一些变量,如StartPoint& EndPoint&从存储的数据中获取所需的数据。递增递减StartPoint&的值。 EndPoint使用PreviouButton& Next按钮。

解决方案2:

每次点击导航按钮时,只从数据源获取所需数据,例如10条记录。

答案 1 :(得分:0)

最简单的解决方案是在列表视图中添加页脚视图。在项目点击监听器上,您可以看到它是否是最后一个位置(加载更多项目),或者不是

//add the footer before adding the adapter, else the footer will not load!

View footerView = ((LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.listfooter, null, false);

this.getListView().addFooterView(footerView);

答案 2 :(得分:0)

这可能是您长期列表的解决方案..

请转到此link

希望这会有所帮助

DreamCoder

答案 3 :(得分:0)

我建议你在扩展BaseAdapter类的自定义Adapter类中加载列表数据。就像@oriolpons建议的那样,你应该添加一个页脚视图,然后当你点击按钮时,接下来调用一个接下来的方法,例如20行,然后将它们添加到你的适配器对象中并调用notifyDataSetChanged()。

例如

private OnClickListener mListener = new OnClickListener() {

    public void onClick(View v) {
        ArrayList<YourObject> al = getSomeData(int startRow, int endRow);
                    MyCustomAdapter adapter = new MyCustomAdapter();
                    for(YourObject a : al)
                       adapter.add(a);
                       getListView.setAdapter(adapter);
                       notifyDataSetChanged();
    }
};

希望这有帮助。

答案 4 :(得分:-1)

@Tijo。请参阅此网站http://www.androidhive.info/2012/03/android-listview-with-load-more-button/。您可以使用一个按钮来调用Async任务的执行方法,并为您加载剩余的列表。