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