首先MVP的话
第一步 Model层里面得编写数据第二步的话 Contrllor里面中转public class Model { public void getData(){ HttpUtils httpUtils=new HttpUtils(); httpUtils.LoadDataFromServer("http://120.27.23.105/ad/getAd", Bean.class, new NetDataCallBack() { @Override public void callback(Object o) { Bean rebean= (Bean) o; List<Bean.MiaoshaBean.ListBeanX> rebb=rebean.getMiaosha().getList(); getdata.Success(rebb); } @Override public void error(String s, int code) { } }); } Getdata getdata; public void setGetdata(Getdata getdata) { this.getdata = getdata; } public interface Getdata{ void Success( List<Bean.MiaoshaBean.ListBeanX> rebb ); } }
public class Presenter implements Model.Getdata,Gong<View1>{ private Model model; //软引用 private WeakReference<View1> weak; public Presenter (View1 view1){ this.model=new Model(); onAttach(view1); model.setGetdata(this); } //拿到数据 public void getData(){ model.getData(); } @Override public void onAttach(View1 view1) { weak=new WeakReference<View1>(view1); } @Override public void onDeattch() { weak.clear(); } @Override public void Success(List<Bean.MiaoshaBean.ListBeanX> rebb) { weak.get().Succee(rebb); } }
第三view层的编写 名字注意点
第四public interface View1 { void Succee(List<Bean.MiaoshaBean.ListBeanX> rebb); }
得写一个公共类
第5的话 适配public interface Gong<T> { public void onAttach(T View); public void onDeattch(); }
public class Adapter extends RecyclerView.Adapter<Adapter.MyViewHondler>{ Context context; List<Bean.MiaoshaBean.ListBeanX> list; public Adapter(Context context, List<Bean.MiaoshaBean.ListBeanX> list) { this.context = context; this.list = list; } @Override public MyViewHondler onCreateViewHolder(ViewGroup parent, int viewType) { View view=View.inflate(context,R.layout.recyclerview_item1,null); MyViewHondler myViewHondler=new MyViewHondler(view); myViewHondler.im= view.findViewById(R.id.recyclerview_img); myViewHondler.tv= view.findViewById(R.id.recyclerview_text); myViewHondler.tv1= view.findViewById(R.id.recyclerview_text1); return myViewHondler; } @Override public void onBindViewHolder(MyViewHondler holder, int position) { String[] s = list.get(position).getImages().split("\\|"); ImageLoader.getInstance().displayImage(s[0],holder.im, Myapp.getDisk()); holder.tv.setText(list.get(position).getTitle()); holder.tv1.setText(list.get(position).getPrice()+""); } @Override public int getItemCount() { return list.size(); } public class MyViewHondler extends RecyclerView.ViewHolder{ ImageView im; TextView tv; TextView tv1; public MyViewHondler(View itemView) { super((android.view.View) itemView); } } }
第6 activity里面显示public class MainActivity extends AppCompatActivity implements View1 { private Presenter presenter; private RecyclerView rv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); sss(); presenter.getData(); } private void sss() { rv= (RecyclerView) findViewById(R.id.rv); presenter=new Presenter(MainActivity.this); } @Override public void Succee(List<Bean.MiaoshaBean.ListBeanX> rebb) { Adapter a=new Adapter(MainActivity.this,rebb); rv.setLayoutManager(new LinearLayoutManager(this)); rv.setAdapter(a); } @Override protected void onDestroy() { super.onDestroy(); presenter.onDeattch(); } }
然后里面用的okhttp自己封装的俩类 加载图片看image_loader就行。