您正在使用Android应用程序。我在一些活动中使用了listview。
问题是我显示的所有列表视图都要长得多,因此用户需要滚动整个列表才能找到最后一项。
我试图为此实现分页,比如说最初只需要在listview上显示20个项目。在我的listview结束时,我需要一个标题栏,其中包含下一个&以前的按钮和单击下一个按钮列表视图将加载21到40之间的下一个记录,依此类推。
使用java rest webservice加载listview。
任何人都可以给我一个很好的建议来解决我的问题。?
答案 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)
答案 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任务的执行方法,并为您加载剩余的列表。