MVP框架请求数据

1:model

ICallBack
public interface ICallBack {
    void success(RootData data);//请求成功
    void failed(String msg);//请求失败
}
ICommentBack
public interface ICommentBack {
    //得到请求列表
    void getCommentList(String url,ICallBack callBack);
}
CommentBack
public class CommentBack implements ICommentBack{
    public CommentBack() {
    }

    @Override
    public void getCommentList(String url, final ICallBack callBack) {
        StringRequest request=new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                //请求成功
                Gson gson=new Gson();
                RootData data = gson.fromJson(response, RootData.class);
                callBack.success(data);

            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                //请求失败
                callBack.failed(error.getMessage());
            }
        });
        VolleyUtil.getVolley().addToQueue(request);
    }
}

2:presenter

ICommentPresenter
public interface ICommentPresenter {
     //获取商品列表
    void getList();
}
CommentPresenter

public class CommentPresenter implements ICommentPresenter, ICallBack {
    //注入M层(得到数据列表)
    ICommentBack commentBack;
    //注入V层(展示出来)
    ICommentView commentView;
    //构造函数
    public CommentPresenter(MainActivity activity) {
              commentBack=new CommentBack();
              commentView=activity;
    }
    @Override
    public void getList() {
       commentBack.getCommentList("https://www.zhaoapi.cn/product/getProducts?pscid=1",this);
    }

    @Override
    public void success(RootData data) {
        Log.d("comment",data.toString());
        //请求成功展示数据
        commentView.showData(data);

    }

    @Override
    public void failed(String msg) {

    }
}

3:view

ICommentView
public interface ICommentView {
    //展示数据
     public void showData(RootData data);
}
CommentAdapter
public class CommentAdapter extends BaseAdapter{
    List<Comment> list1;
    Context context;

    public CommentAdapter(Context context) {
         this.context=context;
         list1=new ArrayList<>();
    }
    //添加数据到列表
    public void addData(List<Comment> comments){
        this.list1.addAll(comments);
        notifyDataSetChanged();
    }
    @Override
    public int getCount() {
        return list1.size();
    }

    @Override
    public Object getItem(int position) {
        return list1.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder;
        if(convertView==null){
            holder=new ViewHolder();
            LayoutInflater inflater=LayoutInflater.from(context);
            convertView= inflater.inflate(R.layout.listview,parent,false);
            holder.text1=convertView.findViewById(R.id.text1);
            holder.text2=convertView.findViewById(R.id.text2);
            holder.text3=convertView.findViewById(R.id.text3);
             holder.image= convertView.findViewById(R.id.image);
            convertView.setTag(holder);
        }else {
           holder= (ViewHolder) convertView.getTag();
        }
        Comment comment= (Comment) getItem(position);
        holder.text1.setText(comment.title);
        holder.text2.setText(comment.createtime);
        holder.text3.setText(comment.salenum+"");
        holder.image.setImageResource(R.drawable.ic_launcher_background);
       /* loader.displayImage(comment.images,holder.image, App.getOptions());*/

        String images = list1.get(position).images;
        String s = images.split("\\|")[0];
        //加载图片
        Glide.with(context).load(s).into(holder.image);

        /*ImageLoader.getInstance().displayImage("https://m.360buyimg.com//n0//jfs//t9004//210//1160833155//647627//ad6be059//59b4f4e1N9a2b1532.jpg",holder.image,App.getOptions());*/
        return convertView;
    }
    static  class ViewHolder{
        TextView text1,text2,text3;
        ImageView image;
    }
}
MainActivity
public class MainActivity extends AppCompatActivity implements ICommentView{
    CommentPresenter commentPresenter;
    XListView xListView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //获取资源id
        xListView=findViewById(R.id.xlistview);
        commentPresenter=new CommentPresenter(this);
        commentPresenter.getList();
    }

    @Override
    public void showData(RootData data) {
        //创建适配器
        CommentAdapter adapter=new CommentAdapter(this);
        adapter.addData(data.data);
        xListView.setAdapter(adapter);
    }
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值