MVP实现Recyclerview加Springview上拉加载下拉刷新点击条目可跳转到购物车
2017-11-22 14:19
603 查看
GitHub地址:https://github.com/ztz736665550/RecyclerView
----------------------------------------activity--------------------------------------------------package com.ztz.recyclerview; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.DividerItemDecoration; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.View; import android.widget.Toast; import com.liaoinstan.springview.container.DefaultFooter; import com.liaoinstan.springview.container.DefaultHeader; import com.liaoinstan.springview.widget.SpringView; import com.ztz.recyclerview.adapter.MyreyAdapter; import com.ztz.recyclerview.bean.MusicBean; import com.ztz.recyclerview.presenter.RecyPresenter; import com.ztz.recyclerview.view.RecyViewCallBack; import java.util.List; public class MainActivity extends AppCompatActivity implements RecyViewCallBack{ private SpringView spring_view; private RecyclerView recycler_view; private RecyPresenter presenter; private MyreyAdapter adapter; private int a=3; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化控件 initView(); //recyclerview recycler_view.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false)); adapter = new MyreyAdapter(this); recycler_view.setAdapter(adapter); recycler_view.addItemDecoration(new DividerItemDecoration(this,1)); //与presenter交互 presenter = new RecyPresenter(this); presenter.RequestData(a); //springview spring_view.setHeader(new DefaultHeader(this)); spring_view.setFooter(new DefaultFooter(this)); spring_view.setListener(new SpringView.OnFreshListener() { @Override public void onRefresh() { //刷新 if (a == 1) { Toast.makeText(MainActivity.this,"没有最新数据了",Toast.LENGTH_SHORT).show(); }else{ a = 1; presenter.RequestData(a); } //停止刷新 spring_view.onFinishFreshAndLoad(); //刷新适配器 adapter.notifyDataSetChanged(); } @Override public void onLoadmore() { //加载 a = a+3; presenter.RequestData(a); //停止加载 spring_view.onFinishFreshAndLoad(); //刷新适配器 adapter.notifyDataSetChanged(); } }); //recyclerview的条目点击事件 adapter.setItemOnClickListener(new MyreyAdapter.MyItemOnClickListener() { @Override public void onItemOnClick(View view, int postion) { Toast.makeText(MainActivity.this,"点击了item",Toast.LENGTH_SHORT).show(); } }); } private void initView() { spring_view = findViewById(R.id.spring_view); recycler_view = findViewById(R.id.recycler_view); } //获取到的数据 @Override public void success(MusicBean musicBean) { Log.i("-------------------",musicBean.getSong_list().get(1).getAlbum_title()); List<MusicBean.SongListBean> list = musicBean.getSong_list(); adapter.addData(list); //添加完数据,进行一次刷新 adapter.notifyDataSetChanged(); } @Override public void failed(Exception e) { Log.i("-------------------","失败"); } }
----------------------------------------适配器---------------------------------------------------
package com.ztz.recyclerview.adapter; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import com.bumptech.glide.Glide; import com.ztz.recyclerview.R; import com.ztz.recyclerview.bean.MusicBean; import java.util.List; /** * Created by TR on 2017/11/22. */ public class MyreyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { private Context context; public MyreyAdapter(Context context) { this.context = context; } private List<MusicBean.SongListBean> list; public void addData(List<MusicBean.SongListBean> list) { this.list = list; } //对Activity暴露 private MyItemOnClickListener listener; public void setItemOnClickListener(MyItemOnClickListener listener){ this.listener=listener; } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { viewHolder fmListHolder=new viewHolder(LayoutInflater.from(context).inflate(R.layout.recyclerview_layout,parent,false),listener); return fmListHolder; } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { viewHolder holder1 = (viewHolder) holder; Glide.with(context).load(list.get(position).getPic_big()).placeholder(R.mipmap.ic_launcher).into(holder1.image_icon); holder1.text_name.setText(list.get(position).getArtist_name()); holder1.text_title.setText(list.get(position).getAlbum_title()); holder1.text_time.setText(list.get(position).getPublishtime()); } @Override public int getItemCount() { return list == null ? 0 :list.size(); } static class viewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { private final ImageView image_icon; private final TextView text_name; private final TextView text_title; private final TextView text_time; MyItemOnClickListener mListener; public viewHolder(View itemView,MyItemOnClickListener myItemOnClickListener) { super(itemView); image_icon = itemView.findViewById(R.id.image_icon); text_name = itemView.findViewById(R.id.text_name); text_title = itemView.findViewById(R.id.text_title); text_time = itemView.findViewById(R.id.text_time); this.mListener=myItemOnClickListener; itemView.setOnClickListener(this); } @Override public void onClick(View view) { if(mListener!=null){ mListener.onItemOnClick(view,getPosition()); } } } //定义接口 public interface MyItemOnClickListener { void onItemOnClick(View view,int postion); } }
相关文章推荐
- mvp+retrofit+rxjava xrecyclerview实现多条目 下拉刷新 下拉加载 点击跳转
- MVP+二级购物车+recyclerView点击条目跳转
- RecyclerView条目跳转+SpringView数据刷新加载+MVP+OKhttp+拦截器+自定义view 实现请求网络数据的二级列表购物车
- 使用MVP,OKHttp封装类及其拦截器,RecyclerView,SpringView,ImageLoader实现数据的多条目加载
- 使用MVP注册登录模块+封装的OKhttp,拦截器+QQ第三方登录+RecyclerView+SpringView上拉加载下拉刷新网络数据
- RecyclerView实现分割线、点击事件、条目加载动画
- recyclerview最简单实现条目加载和点击
- 用RecyclerView实现新闻列表页,包括头部的图片轮播,两种Item显示方式,下拉刷新和上拉加载以及限制列表的加载条目数
- XRecyclerView的多条目请求数据,可以实现上拉加载下拉刷新
- recyclerview 显示图片 glide加载图片 实现点击跳转 上拉刷新下拉加载
- RecyclerView展示固定数据、上拉加载更多、下拉刷新、点击事件、长按点击事件、删除条目、刷新条目、添加条目、多条目加载
- SwipeRefreshLayout+RecyclerView实现下拉刷新上拉自动加载
- MVP+Retrofit+RecyclerView实现加载网络数据
- Android LRecyclerView实现下拉刷新,滑动到底部自动加载更多
- RecyclerView的简单使用,实现下拉刷新、上拉加载
- MVP和sqlite数据库,XRecyclerView上啦加载下拉刷新的第三方注册登录,列表
- SwipeRefreshLayout + RecyclerView实现上拉加载和下拉刷新
- Android LRecyclerView实现下拉刷新,滑动到底部自动加载更多
- pullloadmorerecyclerview实现recycleview上拉加载,下拉刷新
- Android实现RecyclerView的下拉刷新和上拉加载更多