package com.example.month; import android.os.Handler; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.ImageView; import android.widget.ListView; import android.widget.RelativeLayout; import com.google.gson.Gson; import com.handmark.pulltorefresh.library.ILoadingLayout; import com.handmark.pulltorefresh.library.PullToRefreshBase; import com.handmark.pulltorefresh.library.PullToRefreshListView; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { private DrawerLayout drawer; private RelativeLayout menu; private List<JsonBean.DataBean> list = new ArrayList<>(); private PullToRefreshListView pullre; private int operType=1;//1:刷新 2:加载更多 private int pageIndex=1; private Myadapter myadapter; private String url="http://www.93.gov.cn/93app/data.do?channelId=0&startNum="+pageIndex; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取资源id drawer = (DrawerLayout) findViewById(R.id.drawer); menu = (RelativeLayout) findViewById(R.id.menu); ImageView img = (ImageView) findViewById(R.id.img); pullre = (PullToRefreshListView) findViewById(R.id.pullre); //设置监听事件关闭侧滑菜单 img.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { drawer.closeDrawer(menu); } }); //进行初始化 initPullListView(); requestNetData(); } public void initPullListView(){ //设置模式 BOTH:支持上拉与下拉 PULL_FROM_START:支持下拉 PULL_FROM_END:支持上拉 pullre.setMode(PullToRefreshBase.Mode.BOTH); //2.设置头尾布局中的文本 ILoadingLayout headerlayout = pullre.getLoadingLayoutProxy(true, false);//第一个参数为true,代表设置头部布局中文本 headerlayout.setPullLabel("下拉刷新..."); headerlayout.setRefreshingLabel("正在刷新..."); headerlayout.setReleaseLabel("松开刷新...."); ILoadingLayout footerlayout = pullre.getLoadingLayoutProxy(false, true); footerlayout.setPullLabel("加载更多...."); footerlayout.setRefreshingLabel("正在加载...."); footerlayout.setReleaseLabel("松开加载...."); //3.设置上拉与下拉的监听 pullre.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) { //下拉,刷新回调 pageIndex=1; operType=1; requestNetData(); } @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) { //上拉,加载 pageIndex++; operType=2; requestNetData(); } }); } //请求数据 public void requestNetData(){ Mytask task = new Mytask(new HttpCallback() { @Override public void callback(String getjs) { //解析 Gson gson = new Gson(); JsonBean jsonBean = gson.fromJson(getjs, JsonBean.class); if(operType==1){ //清空 list.clear(); list.addAll(0,jsonBean.getData());//将新请求的数据放在集合列表的最前面 }else{ //添加到集合中 list.addAll(jsonBean.getData()); } //显示 Setadapter(); //关闭尾布局 new Handler().postDelayed(new Runnable() { @Override public void run() { pullre.onRefreshComplete(); } },3000); } }); task.execute(url); } private void Setadapter(){ if(myadapter==null){ myadapter = new Myadapter(this,list); pullre.setAdapter(myadapter); }else{ myadapter.notifyDataSetChanged(); } } }
怎么用pulltorefresh
最新推荐文章于 2024-09-03 08:12:32 发布