MVP+RecyclerView
来源:互联网 发布:ubuntu17.04安装mysql 编辑:程序博客网 时间:2024/06/05 08:41
MVP
这里是V层
package com.bwei.j.reg.recylerView.view;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.LinearLayoutManager;import android.widget.Toast;import com.bwei.j.reg.R;import com.bwei.j.reg.recylerView.adapter.MyAdapter;import com.bwei.j.reg.recylerView.bean.NewsBean;import com.bwei.j.reg.recylerView.persenter.MyPresenter;import com.jcodecraeer.xrecyclerview.XRecyclerView;import com.nostra13.universalimageloader.core.ImageLoader;import java.util.List;public class RecycleViewActivity extends AppCompatActivity implements View{ MyPresenter myPresenter; private XRecyclerView mRecyclerView; private List<NewsBean.SongListBean> song_list; private MyAdapter myAdapter; private ImageLoader instance; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_recycle_view); myPresenter = new MyPresenter(this); myPresenter.getContent(); instance = ImageLoader.getInstance(); } private void initView() { mRecyclerView = (XRecyclerView) findViewById(R.id.rcl); mRecyclerView.setLayoutManager(new LinearLayoutManager(RecycleViewActivity.this)); myAdapter = new MyAdapter(RecycleViewActivity.this, song_list,instance); mRecyclerView.setAdapter(myAdapter); myAdapter.setOnClick(new MyAdapter.clickLisenner() { @Override public void onclickLisenner(int p) { Toast.makeText(RecycleViewActivity.this,"点击了id:"+p,Toast.LENGTH_LONG).show(); } @Override public void onLongclickLisenner(int p) { Toast.makeText(RecycleViewActivity.this,"长按了id:"+p,Toast.LENGTH_LONG).show(); } }); mRecyclerView.setLoadingListener(new XRecyclerView.LoadingListener() { @Override public void onRefresh() { Toast.makeText(RecycleViewActivity.this, "刷新", Toast.LENGTH_SHORT).show(); mRecyclerView.refreshComplete(); } @Override public void onLoadMore() { Toast.makeText(RecycleViewActivity.this, "加载", Toast.LENGTH_SHORT).show(); mRecyclerView.loadMoreComplete(); } }); } @Override public void Data(NewsBean bean) { song_list = bean.getSong_list(); initView(); }}
package com.bwei.j.reg.recylerView.view;import com.bwei.j.reg.recylerView.bean.NewsBean;/** * author:Created by WangZhiQiang on 17.12.9. */public interface View { void Data(NewsBean bean);}MVP这里是M层
public interface Model { void GetData();}
package com.bwei.j.reg.recylerView.model;import android.util.Log;import com.bwei.j.reg.recylerView.bean.NewsBean;import com.bwei.j.reg.tools.RegApi;import java.io.IOException;import okhttp3.Call;import utils.GsonObjectCallback;import utils.OkHttp3Utils;public class MyModel implements Model { OnFinsh onFinsh; public interface OnFinsh{ void Finsh(NewsBean newsBean); } public void setOnFinsh(OnFinsh onFinsh){ this.onFinsh = onFinsh; } @Override public void GetData() { OkHttp3Utils.doGet(RegApi.RECYLER, new GsonObjectCallback<NewsBean>() { @Override public void onUi(NewsBean newsBean) { if(onFinsh!=null){ onFinsh.Finsh(newsBean); Log.e("TAG",newsBean.getSong_list().get(1).getTitle()); } } @Override public void onFailed(Call call, IOException e) { } }); }}MVP这里是P层
package com.bwei.j.reg.recylerView.persenter;import com.bwei.j.reg.recylerView.bean.NewsBean;import com.bwei.j.reg.recylerView.model.MyModel;import com.bwei.j.reg.recylerView.view.View;/** */public class MyPresenter{ View view; MyModel myModel; public MyPresenter(View view) { this.view = view; this.myModel = new MyModel(); } public void getContent(){ myModel.GetData(); myModel.setOnFinsh(new MyModel.OnFinsh() { @Override public void Finsh(NewsBean newsBean) { view.Data(newsBean); } }); }}
MyAdapter
package com.bwei.j.reg.recylerView.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.LinearLayout;import android.widget.TextView;import com.bwei.j.reg.R;import com.bwei.j.reg.recylerView.bean.NewsBean;import com.nostra13.universalimageloader.core.ImageLoader;import java.util.List;/** * public class MyAdapter extends RecyclerView.Adapter <RecyclerView.ViewHolder>{ Context context; List<NewsBean.SongListBean> song_list; ImageLoader ImageLoader; clickLisenner clickLisenner; public interface clickLisenner{ void onclickLisenner(int p); void onLongclickLisenner(int p); } public void setOnClick(clickLisenner clickLisenner){ this.clickLisenner = clickLisenner; } public MyAdapter(Context context, List<NewsBean.SongListBean> song_list,ImageLoader ImageLoader) { this.context = context; this.song_list = song_list; this.ImageLoader = ImageLoader; } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(context).inflate(R.layout.item_list, null); MyViewHolder myViewHolder = new MyViewHolder(view); return myViewHolder; } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) { NewsBean.SongListBean songListBean = song_list.get(position); MyViewHolder myViewHolder = (MyViewHolder) holder; myViewHolder.title.setText(songListBean.getAlbum_title()); myViewHolder.data.setText(songListBean.getAuthor()); ImageLoader.displayImage(songListBean.getPic_big(),myViewHolder.img); myViewHolder.ll.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { clickLisenner.onclickLisenner(position); } }); myViewHolder.ll.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { clickLisenner.onLongclickLisenner(position); return false; } }); } @Override public int getItemCount() { return song_list.size(); } class MyViewHolder extends RecyclerView.ViewHolder { private ImageView img; private TextView data; private TextView title; private final LinearLayout ll; public MyViewHolder(View itemView) { super(itemView); ll = (LinearLayout)itemView.findViewById(R.id.ll); img = (ImageView) itemView.findViewById(R.id.img); data = (TextView) itemView.findViewById(R.id.data); title = (TextView) itemView.findViewById(R.id.title1); } }}
阅读全文
0 0
- MvP+recyclerview
- Mvp+RecyclerView
- MVP+RecyclerView
- mvp+Recyclerview+okhttp+Springview
- mvp+okhttp+recyclerview
- mvp,okhttp,recyclerview
- MVP实现RecyclerView
- okhttp+MVP+RecyclerView
- RecyclerView+MVP+OKhttp
- okHttp+Mvp+RecyclerView
- MVP简单使用+RecyclerView
- Mvp+RecyclerView+Okhttp
- MVP+搜索+recyclerview+springview
- MVP模式的RecyclerView案例
- MVP在RecyclerView中的使用
- recyclerView+MVP实现瀑布流
- recyclerview展示数据(MVP)
- OkHttp,MVP,RecyclerView瀑布流
- js+jQuery+ajax,处理数据和功能的实现
- [基环外向树+树形DP]BZOJ 1040—— [ZJOI2008]骑士
- 自增运算符重载
- java中如何 把http变为https:
- MATLAB 2016a安装
- MVP+RecyclerView
- 51Nod 1433 0和5 倍数
- Matlab上使用LIBSVM 3.22
- Eclipse 测试程序执行完所需要的时间(java)
- Android友盟集成QQ登陆详解大全
- Python网络编程
- 优秀的手写识别数据集
- Python.random.seed()用法
- Two heaps -codeforce 353B --mystical_curve