PullToRefreshListView的使用

PullToRefreshListView的使用

其实PullToRefreshListView和XlistView的原理有很多相似之处
1.导入ModulePullToRefreshListView的使用_第1张图片
2.导入依赖PullToRefreshListView的使用_第2张图片布局


主页面

public class MainActivity extends AppCompatActivity {

    private PullToRefreshListView pullToRefreshListView;
    private List listAll =new ArrayList<>();
    private String path="http://api.expoon.com/AppNews/getNewsList/type/1/p/";
    private int num=1;
    private MyBaseAdapter myBaseAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        myBaseAdapter = new MyBaseAdapter(MainActivity.this);
        pullToRefreshListView.setAdapter(myBaseAdapter);
        initAsyncTask(num);
        initLister();
    }

    private void initAsyncTask(int num) {
        new Async().execute(path+num);
    }

    private void initLister() {
        //设置监听
        pullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2() {
            //下拉刷新
            @Override
            public void onPullDownToRefresh(PullToRefreshBase refreshView) {
                num=1;
                listAll.clear();
                initAsyncTask(num);
                //停止刷新
                pullToRefreshListView.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        pullToRefreshListView.onRefreshComplete();
                    }
                },1000);
            }
            //下上拉加载更多
            @Override
            public void onPullUpToRefresh(PullToRefreshBase refreshView) {
                num++;
                initAsyncTask(num);
                //停止加载
                pullToRefreshListView.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        pullToRefreshListView.onRefreshComplete();
                    }
                },1000);
            }
        });
    }

    private void initView() {
        pullToRefreshListView = (PullToRefreshListView) findViewById(R.id.pullToRefreshListView);
        //PullToRefreshListView支持上拉下拉
        pullToRefreshListView.setMode(PullToRefreshListView.Mode.BOTH);
    }
    class Async extends AsyncTask>{

        @Override
        protected List doInBackground(String... strings) {
            try {
                URL url = new URL(path+num);
                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                if(connection.getResponseCode()==200){
                    String s = CharStreams.toString(new InputStreamReader(connection.getInputStream(), "UTF-8"));
                    MyData data = new Gson().fromJson(s, MyData.class);
                    return data.getData();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected void onPostExecute(List dataBeans) {
            super.onPostExecute(dataBeans);
            listAll.addAll(dataBeans);
            myBaseAdapter.setList(listAll);
        }
    }

}

    

你可能感兴趣的:(PullToRefreshListView的使用)