Mvp+Recyleview简单操作

首先MVP的话  
 第一步 Model层里面得编写数据

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

      }
}
第二步的话 Contrllor里面中转

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

得写一个公共类

public interface Gong<T> {
    public void onAttach(T View);
    public void onDeattch();
}
第5的话 适配

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就行。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值