MVP实现Recyclerview加Springview上拉加载下拉刷新点击条目可跳转到购物车

来源:互联网 发布:暗黑3猎魔人套装数据 编辑:程序博客网 时间:2024/06/06 19:27


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);    }}

阅读全文
0 0
原创粉丝点击