XRecyclerView 上拉刷新、下拉加载

来源:互联网 发布:mac帧ip类型数据长度 编辑:程序博客网 时间:2024/06/05 15:44

先导入依赖:

compile 'com.jcodecraeer:xrecyclerview:1.3.2'

在activity_main.xml中:

<com.jcodecraeer.xrecyclerview.XRecyclerView    android:id="@+id/xrecycview"    android:layout_width="match_parent"    android:layout_height="wrap_content"></com.jcodecraeer.xrecyclerview.XRecyclerView>


我们用的接口:

http://app.u17.com/v3/appV3_3/android/phone/list/commonComicList?argValue=23&argName=sort&argCon=0&android_id=4058040115108878&v=3330110&model=GT-P5210&come_from=Tg002&page=

page=“任意数值,用来分页加载”

在MainActivity中:

public class MainActivity extends AppCompatActivity implements XRecyclerView.LoadingListener{    private XRecyclerView xrecycview;    private MyBaseAdapter adapter;    private List<Data.DataBean.ReturnDataBean.ComicsBean> list=new ArrayList<>();    String path="http://app.u17.com/v3/appV3_3/android/phone/list/commonComicList?argValue=23&argName=sort&argCon=0&android_id=4058040115108878&v=3330110&model=GT-P5210&come_from=Tg002&page=";    int paga=1;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        xrecycview= (XRecyclerView) findViewById(R.id.xrecycview);        LinearLayoutManager manager=new LinearLayoutManager(this);        xrecycview.setLayoutManager(manager);        manager.setOrientation(LinearLayoutManager.VERTICAL);                xrecycview.setLoadingListener(this);        xrecycview.setPullRefreshEnabled(true);        xrecycview.setLoadingMoreProgressStyle(ProgressStyle.BallPulseRise);                adapter=new MyBaseAdapter(list);        xrecycview.setAdapter(adapter);        getHttp();    }    private void getHttp() {        //xutils网络请求        RequestParams params=new RequestParams(path+paga);        x.http().get(params, new Callback.CommonCallback<String>() {            @Override            public void onSuccess(String result) {                Data data = new Gson().fromJson(result, Data.class);                list.addAll(data.getData().getReturnData().getComics());                adapter=new MyBaseAdapter(list);                xrecycview.setAdapter(adapter);                adapter.notifyDataSetChanged();            }            @Override            public void onError(Throwable ex, boolean isOnCallback) {            }            @Override            public void onCancelled(CancelledException cex) {            }            @Override            public void onFinished() {            }        });    }    @Override    public void onRefresh() {        list.clear();        paga=1;        getHttp();        adapter.notifyDataSetChanged();        xrecycview.refreshComplete();    }    @Override    public void onLoadMore() {        paga++;        getHttp();        adapter.notifyDataSetChanged();        xrecycview.loadMoreComplete();    }}

创建一个MyBaseAdapter.class类:

public class MyBaseAdapter extends RecyclerView.Adapter<MyBaseAdapter.MyViewHolder> {    private List<Data.DataBean.ReturnDataBean.ComicsBean> list=new ArrayList<>();    public MyBaseAdapter(List<Data.DataBean.ReturnDataBean.ComicsBean> list) {        this.list = list;    }    @Override    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {        View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.itme,parent,false);        return new MyViewHolder(view);    }    @Override    public void onBindViewHolder(MyViewHolder holder, int position) {        holder.tv1.setText(list.get(position).getName());        x.image().bind(holder.iv1,list.get(position).getCover());    }    @Override    public int getItemCount() {        return list.size();    }    public class MyViewHolder extends RecyclerView.ViewHolder {        private ImageView iv1;        private TextView tv1;        public MyViewHolder(View itemView) {            super(itemView);            iv1=itemView.findViewById(R.id.iv1);            tv1=itemView.findViewById(R.id.tv1);        }    }}

创建App.class类:

public class App extends Application {    @Override    public void onCreate() {        super.onCreate();        x.Ext.init(this);        x.Ext.setDebug(BuildConfig.DEBUG);    }
在AndroidManifest里:

android:name=".app.App"

原创粉丝点击