简单的搜索商品及展示 Simple Search Goods and Display

MainActivity

 private RecyclerView recycler;
    private MyAdapter adapter;
    private EditText ed;
    private Mainpresenteriml mainpresenteriml;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);



        recycler = (RecyclerView) findViewById(R.id.recycler);
        ed = findViewById(R.id.nr);

        findViewById(R.id.ss).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                init();
            }
        });

        //  设置类型
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
        linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
        recycler.setLayoutManager(linearLayoutManager);



        adapter = new MyAdapter(this);

        recycler.setAdapter(adapter);


        mainpresenteriml = new Mainpresenteriml(new MainModeliml(),this);

        mainpresenteriml.dodata("手机",1+"");

    }

    private void init(){
        String context = ed.getText().toString().trim();

        if(TextUtils.isEmpty(context)){
            Toast.makeText(this,"请输入数据在进行查询",Toast.LENGTH_SHORT).show();;
        }else{

             mainpresenteriml.dodata(context,1+"");

             adapter.notifyDataSetChanged();  //  刷新
        }
    };

    @Override
    public void success(String data) {

        DataBean bean = new Gson().fromJson(data, DataBean.class);
        adapter.setlist(bean.getResult());
    }


    @Override
    public void fail() {

    }

MyAdapter

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.Httpcll> {


    private List<DataBean.ResultBean> list = new ArrayList<>();
    Context context;



    public MyAdapter(Context context) {

        this.context = context;
    }

    @NonNull
    @Override
    public MyAdapter.Httpcll onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {

        View view = View.inflate(context, R.layout.recyle_bj,null);
        Httpcll httpcll = new Httpcll(view);
        return httpcll;
    }



    @Override
    public void onBindViewHolder(@NonNull MyAdapter.Httpcll httpcll, int i) {

        httpcll.js.setText(list.get(i).getCommodityName());
        httpcll.jg.setText(list.get(i).getPrice()+"¥");
        httpcll.dz.setText("已售"+list.get(i).getSaleNum()+"间");
        Glide.with(context).load(list.get(i).getMasterPic()).into(httpcll.image);

    }

    @Override
    public int getItemCount() {
        return list.size();
    }

    public void setlist(List<DataBean.ResultBean> result) {
        this.list = result;
    }


public class Httpcll extends RecyclerView.ViewHolder {

    ImageView image;
    TextView js,dz,jg;



    public Httpcll(@NonNull View itemView) {
        super(itemView);

        js = itemView.findViewById(R.id.js);
        image = itemView.findViewById(R.id.image);
        dz = itemView.findViewById(R.id.dz);
        jg = itemView.findViewById(R.id.jg);


    }
   }
}

OkHttpUtils

 private int HTTP_SUCCESS= 1000;
    private int HTTP_FAIL= 1001;


    public OkHttpUtils get(String url){

          init(url,0,null);
          return this;
      }

       public OkHttpUtils post(String url,FormBody.Builder boydbuilder){

        init(url,1,boydbuilder);

          return this;
    }
      private void init(String url, int i, FormBody.Builder boydbuilder) {


          OkHttpClient client = new OkHttpClient();

          Request.Builder build = new Request.Builder();

          if(i == 0){
              build.get();
          }else{
              build.post(boydbuilder.build());
          }
          build.url(url);
          Request request = build.build();
          client.newCall(request).enqueue(new Callback() {
              @Override
              public void onFailure(Call call, IOException e) {

                  Message message = Message.obtain();
                  message.what = HTTP_FAIL;
                  handler.sendMessage(message);
              }

              @Override
              public void onResponse(Call call, Response response) throws IOException {

                     Message message = Message.obtain();
                     message.obj = response.body().string();
                     message.what = HTTP_SUCCESS;
                     handler.sendMessage(message);
              }
          });

    }

    private Handler handler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            if(msg.what == HTTP_SUCCESS){
                String data = (String) msg.obj;
                linEner.success(data);
            }else{
                linEner.fail();
            }
        }
    };

    LinEner linEner;
    public  void  resonset(LinEner linEner){

        this.linEner = linEner;
    }


    public  interface LinEner{

        void  success(String data);
        void  fail();
    }
}

MVP
view

package com.example.mvp.view;

public interface MainView {

    void success(String data);
    void fail();
}

model

*MainView*
package com.example.mvp.model;

public interface MainModel {

    public  interface CallBackLinstEner{

        void success(String data);
        void fail();
    }

    void doCommterm(String keyword,String page,CallBackLinstEner linstEner);
}



*MainViewiml*
package com.example.mvp.model;

import com.example.net.OkHttpUtils;

public class MainModeliml implements MainModel {


     //  在这李进行获取网络
    @Override
    public void doCommterm(String keyword, String page, final CallBackLinstEner linstEner) {

       String url = "http://172.17.8.100/small/commodity/v1/findCommodityByKeyword?keyword="+keyword+"&page="+page+"&count=10";
       new OkHttpUtils().get(url).resonset(new OkHttpUtils.LinEner() {
           @Override
           public void success(String data) {

               linstEner.success(data);
           }

           @Override
           public void fail() {

               linstEner.fail();
           }
       });
    }
}

presenter

*mainpresenter*
package com.example.mvp.presenter;

public interface Mainpresenter {

    void dodata(String keyword,String page);
}


*mainpresenteiml*

package com.example.mvp.presenter;

import com.example.mvp.model.MainModel;
import com.example.mvp.view.MainView;
import com.example.zhangzhichaoerzho.MainActivity;

public class Mainpresenteriml implements Mainpresenter, MainModel.CallBackLinstEner {

        MainModel mainModel;
        MainView mainView;
    public Mainpresenteriml(MainModel mainModel, MainView mainView) {

          this.mainModel = mainModel;
          this.mainView = mainView;

    }

    @Override
    public void dodata(String keyword, String page) {

         mainModel.doCommterm(keyword,page,this);
    }


    @Override
    public void success(String data) {

         mainView.success(data);
    }

    @Override
    public void fail() {

         mainView.fail();
    }
}

bean

package com.example.bean;

import java.util.List;

public class DataBean {


    /**
     * message : 查询成功
     * result : [{"commodityId":105,"commodityName":"小米8 256GB 全面屏 双频GPS智能拍照游戏手机","masterPic":"http://172.17.8.100/images/small/commodity/sjsm/sj/6/1.jpg","price":3099,"saleNum":0},{"commodityId":120,"commodityName":"德米克 高端正品3d眼镜虚拟现实VR BOX眼镜二代定制LOGO手机家庭影院","masterPic":"http://172.17.8.100/images/small/commodity/sjsm/yyyl/7/1.jpg","price":189,"saleNum":0},{"commodityId":101,"commodityName":"vivo X23幻彩版 多套餐 全面屏拍照美颜超大广角摄影水滴屏智能4G 正品vivox23手机","masterPic":"http://172.17.8.100/images/small/commodity/sjsm/sj/2/1.jpg","price":2798,"saleNum":0},{"commodityId":112,"commodityName":"黑色重力支架 车载手机架汽车用导航支架车上支撑出风口汽车内多功能通用型金属车载支架","masterPic":"http://172.17.8.100/images/small/commodity/sjsm/sjpj/6/1.jpg","price":35,"saleNum":0},{"commodityId":109,"commodityName":"新款奢华镶钻镜面iphone xs max手机壳苹果7plusl软边时尚保护套","masterPic":"http://172.17.8.100/images/small/commodity/sjsm/sjpj/3/1.jpg","price":89,"saleNum":0},{"commodityId":104,"commodityName":"OPPO R17 全网通 8G+128G 美拍补光灯+美容补水仪套餐 全面屏AI智慧美颜双摄拍照手机","masterPic":"http://172.17.8.100/images/small/commodity/sjsm/sj/5/1.jpg","price":3799,"saleNum":0},{"commodityId":119,"commodityName":"斯泰克 吃鸡神器手游键盘 快捷射击辅助按键四指手机游戏 绝地求生刺激战场游戏手柄合金款 苹果安卓通用 扳机射击按键(2件装)","masterPic":"http://172.17.8.100/images/small/commodity/sjsm/yyyl/6/1.jpg","price":39,"saleNum":0},{"commodityId":100,"commodityName":"【壳膜线套餐】 苹果 iPhone XS 256G 全网通手机","masterPic":"http://172.17.8.100/images/small/commodity/sjsm/sj/1/1.jpg","price":10069,"saleNum":0},{"commodityId":111,"commodityName":"三合一充电器数据线苹果二合一拖安卓手机多用功能多头车载苹果安卓一拖三数据线Type-C铝合金编织线 土豪金","masterPic":"http://172.17.8.100/images/small/commodity/sjsm/sjpj/5/1.jpg","price":39,"saleNum":0},{"commodityId":106,"commodityName":"三星Galaxy S9+ 6GB+128GB版曲屏手机/指纹识别手机/拍照手机","masterPic":"http://172.17.8.100/images/small/commodity/sjsm/sj/7/1.jpg","price":6199,"saleNum":0}]
     * status : 0000
     */

    private String message;
    private String status;
    private List<ResultBean> result;

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public List<ResultBean> getResult() {
        return result;
    }

    public void setResult(List<ResultBean> result) {
        this.result = result;
    }

    public static class ResultBean {
        /**
         * commodityId : 105
         * commodityName : 小米8 256GB 全面屏 双频GPS智能拍照游戏手机
         * masterPic : http://172.17.8.100/images/small/commodity/sjsm/sj/6/1.jpg
         * price : 3099
         * saleNum : 0
         */

        private int commodityId;
        private String commodityName;
        private String masterPic;
        private double price;
        private int saleNum;

        public int getCommodityId() {
            return commodityId;
        }

        public void setCommodityId(int commodityId) {
            this.commodityId = commodityId;
        }

        public String getCommodityName() {
            return commodityName;
        }

        public void setCommodityName(String commodityName) {
            this.commodityName = commodityName;
        }

        public String getMasterPic() {
            return masterPic;
        }

        public void setMasterPic(String masterPic) {
            this.masterPic = masterPic;
        }

        public double getPrice() {
            return price;
        }

        public void setPrice(int price) {
            this.price = price;
        }

        public int getSaleNum() {
            return saleNum;
        }

        public void setSaleNum(int saleNum) {
            this.saleNum = saleNum;
        }
    }
}

依赖

    implementation 'com.google.code.gson:gson:2.8.5'
    implementation 'com.github.bumptech.glide:glide:4.9.0'
    implementation 'com.squareup.okhttp3:okhttp:3.10.0'
    implementation 'com.android.support:recyclerview-v7:28.0.0'
    X:
    classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.0'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值