在listview中加载更多数据以刷新

时间:2015-08-20 11:21:12

标签: android

我有一个包含50个元素的arraylist,现在我必须在listview中显示项目限制意味着我想首先显示10个元素,当我将使用pull刷新然后我想加载更多数据意味着追加下10个项目和等等。 任何人都可以告诉我我该怎么做。

提前致谢。

2 个答案:

答案 0 :(得分:2)

通过在Android.support.v4中引入SwipeRefreshLayout来检测任何视图上的垂直滑动,让我们的日子变得更轻松。

实现SwipeRefreshLayout非常简单。无论何时想要在任何视图上检测向下滑动,只需在SwipeRefreshLayout元素周围包裹视图。在我们的例子中,我们将使用它与ListView。并从SwipeRefreshLayout.OnRefreshListener

实现您的活动类
<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/swipe_refresh_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <!-- place your view here -->

</android.support.v4.widget.SwipeRefreshLayout>

将此代码放在JAVA文件中

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        listView = (ListView) findViewById(R.id.listView);
        swipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_refresh_layout);

        movieList = new ArrayList<>();
        adapter = new SwipeListAdapter(this, movieList);
        listView.setAdapter(adapter);

        swipeRefreshLayout.setOnRefreshListener(this);

        /**
         * Showing Swipe Refresh animation on activity create
         * As animation won't start on onCreate, post runnable is used
         */
        swipeRefreshLayout.post(new Runnable() {
                                    @Override
                                    public void run() {
                                        swipeRefreshLayout.setRefreshing(true);

                                        fetchMovies();
                                    }
                                }
        );

    }
 /**
     * This method is called when swipe refresh is pulled down
     */
    @Override
    public void onRefresh() {
        fetchMovies();
    }

有关详情,请查看here

答案 1 :(得分:1)

SwipeRefreshLayout使用侦听器机制来通知保存此组件的侦听器发生刷新事件,因此换言之,我们的Activity必须实现要通知的接口。

Activity负责处理刷新事件并刷新相应的View。如果监听器一旦收到事件,确定应该进行刷新过程并想要显示“refresh animation”,则必须调用setRefrshing(true),否则它可以取消调用 setRefreshing(false)

在我们的例子中,我们将使用它与ListView。并从SwipeRefreshLayout.OnRefreshListener实施您的活动类。当用户向下滑动视图时,将触发onRefresh()方法。您需要在该函数中采取适当的操作,例如进行http调用并获取最新数据。

<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/swipe_refresh_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content">

<ListView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/listView">

</ListView>

android.support.v4.widget.SwipeRefreshLayout 可用于检测用户的垂直滑动手势,以刷新内容。很明显,Android支持库android.support.v4支持内置的Android Pull To Refresh使用 SwipeRefreshLayout查看。只要用户可以通过垂直滑动手势刷新视图内容,就应该使用SwipeRefreshLayout

请检查android-swipe-down-to-refresh-listview-tutorial和Git Demo以及Android Pull To Refresh View using SwipeRefreshLayout