PullToRefreshListView布局属性及java代码应用

来源:互联网 发布:c语言能够做什么 编辑:程序博客网 时间:2024/05/23 00:02
//PullToRefreshListView需要导入依赖库,如果找不到直接在build.gradle:
compile 'com.github.userswlwork:pull-to-refresh:1.0.0'
//布局 
  <!--
    ptr:ptrDrawable="@drawable/default_ptr_flip":刷新时显示的图片
    ptr:ptrAnimationStyle="flip":刷新的图片以何种方式显示出来
    ptr:ptrHeaderBackground="#383838":刷新时头部的布局
    ptr:ptrHeaderTextColor="#FFFFFF":刷新时头部字体的颜色
    还需要添加以下的命名空间
   xmlns:ptr="http://schemas.android.com/apk/res-auto"
-->
    <com.handmark.pulltorefresh.library.PullToRefreshListView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/plv"
        ptr:ptrDrawable="@drawable/default_ptr_flip"
        ptr:ptrAnimationStyle="flip"
        ptr:ptrHeaderBackground="#383838"
        ptr:ptrHeaderTextColor="#FFFFFF"
        ></com.handmark.pulltorefresh.library.PullToRefreshListView>

//java代码

       
import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.ListView;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 PullToRefreshListView pullToRefreshListView;    private String urlPart="https://api.tianapi.com/wxnew/?key=48a7d7193e11bd2dd4a683b6e2f90a4f&num=10&page=";    private int pageindex=1;    private String url=urlPart+pageindex;    private List<Result.NewslistBean> newslist =  new ArrayList<>();    private Myadapter adapter;
@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    pullToRefreshListView = findViewById(R.id.plv);    initplv();    MyNetTask myNetTask = new MyNetTask(new MyNetTask.Icallbacks() {        @Override        public void getjsonData(String jsonStr) {            Gson gson = new Gson();            Result result = gson.fromJson(jsonStr, Result.class);            newslist.addAll(result.getNewslist());            setAdapter();        }    });    myNetTask.execute(url);}
private void initplv() {
    //1.设置模式  BOTH:上下拉刷新  PULL_FROM_START:支持刷新   PULL_FROM_END:支持加载更多
        pullToRefreshListView.setMode(PullToRefreshBase.Mode.PULL_FROM_END);
        //2.设置头尾布局的文字
        ILoadingLayout headerLayout = pullToRefreshListView.getLoadingLayoutProxy(true, false);
        headerLayout.setRefreshingLabel("正在刷新");//正在刷新
        headerLayout.setRefreshingLabel("放开刷新");//下拉到一定的距离,显示的文字
        headerLayout.setPullLabel("下拉刷新");//刚下拉时,显示的文字
        ILoadingLayout footerLayout = pullToRefreshListView.getLoadingLayoutProxy(false, true);
        footerLayout.setRefreshingLabel("正在加载");//正在刷新
        footerLayout.setRefreshingLabel("放开加载");//下拉到一定的距离,显示的文字
        footerLayout.setPullLabel("上拉加载");//刚下拉时,显示的文字
        //3.设置回调监听
        
  pullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {        @Override        public void onPullDownToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {           pageindex=1;           url=urlPart+pageindex;            MyNetTask myNetTask = new MyNetTask(new MyNetTask.Icallbacks() {                @Override                public void getjsonData(String jsonStr) {                    Gson gson = new Gson();                    Result result = gson.fromJson(jsonStr, Result.class);                    newslist.clear();                    newslist.addAll(result.getNewslist());                    setAdapter();                    pullToRefreshListView.onRefreshComplete();                }            });            myNetTask.execute(url);        }        @Override        public void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {            pageindex++;            url=urlPart+pageindex;            MyNetTask myNetTask = new MyNetTask(new MyNetTask.Icallbacks() {                @Override                public void getjsonData(String jsonStr) {                    Gson gson = new Gson();                    Result result = gson.fromJson(jsonStr, Result.class);                    newslist.addAll(result.getNewslist());                    setAdapter();                    pullToRefreshListView.onRefreshComplete();                }            });                myNetTask.execute(url);        }    });}public void setAdapter(){    if(adapter==null){        adapter = new Myadapter(newslist, MainActivity.this);        pullToRefreshListView.setAdapter(adapter);    }else {        adapter.notifyDataSetChanged();    }}

        

}

原创粉丝点击