搜索展示,加入购物车,但不显示购物车页面

//model层

//展示的model

public class SearchModel {
    public void getData(String name, int page, final SModel smodel){
       String url="https://www.zhaoapi.cn/product/searchProducts";
        HashMap<String,String> map=new HashMap<>();
	//传入name值
        map.put("keywords",name);
        map.put("page",page+"");
        OkHttpUtils.getInstance().doGet(url, map, new CallBack() {
            @Override
            public void onSuccess(Object o) {
                smodel.onSuccess(o);
            }

            @Override
            public void onFailure(String msg) {
                smodel.onFailure(msg);
            }
        });
    }
}
//传商品id的model层

public class PidModel {
    private Context context;
    private List<CartBean.DataBean> list = new ArrayList<>();
    HashMap<String,String> map=new HashMap<>();
    public void getPid(int pid, final SModel sModel){

        map.put("pid",pid+"");
        OkHttpUtils.getInstance().doGet("https://www.zhaoapi.cn/product/getProductDetail", map, new CallBack() {
            @Override
            public void onSuccess(Object o) {
                CartBean cartBean = GsonUtils.getInstance().fromJson((String) o, CartBean.class);
                CartBean.DataBean data = cartBean.getData();
                if (data != null) {
                    list.add(data);
                    sModel.onPidSuccess(list);
                }else {
                    Toast.makeText(context, "内容为空", Toast.LENGTH_SHORT).show();
                }
            }
            @Override
            public void onFailure(String msg) {
                sModel.onPidFailed(msg);
            }
        });
    }
    public void getUid(int pid, final SModel sModel) {
        map.put("uid", "1");
        map.put("pid", pid + "");
        OkHttpUtils.getInstance().doGet("https://www.zhaoapi.cn/product/addCart", map, new CallBack() {
            @Override
            public void onSuccess(Object o) {
                Gson gson = new Gson();
                AddCenggong addCenggong = gson.fromJson((String)o, AddCenggong.class);
                String msg = addCenggong.getMsg();
                sModel.onAddSuccess(msg);
            }

            @Override
            public void onFailure(String msg) {
                sModel.onAddFailed(msg);
            }

        });
    }
}
Present层

public class SearchPresent implements SModel {
    private final SearchModel searchModel;
    private final PidModel pidModel;
    private SView sView;

    public  SearchPresent(SView sView){
        this.sView=sView;
        searchModel = new SearchModel();
        pidModel = new PidModel();
    }
    public void getData(String name,int page){
        searchModel.getData(name, page,this);
    }
    //加入购物车管过来的id
    public void getUid(int pid){
        pidModel.getUid(pid,this);
    }

    public void getPid(int id){
        pidModel.getPid(id,this);
    }
    public void onSuccess(Object o) {
        sView.onSuccess(o);
    }

    @Override
    public void onFailure(String msg) {
        sView.onFailure(msg);
    }

    @Override
    public void onPidSuccess(List<CartBean.DataBean> list) {
        sView.onPidSuccess(list);
    }

    @Override
    public void onPidFailed(String message) {
        sView.onPidFailed(message);
    }

    @Override
    public void onAddSuccess(String msg) {
        sView.onAddSuccess(msg);
    }

    @Override
    public void onAddFailed(String msg) {
        sView.onAddFailed(msg);
    }
}
//接口
public interface SModel {
    void onSuccess(Object o);
    void  onFailure(String msg);

    void onPidSuccess(List<CartBean.DataBean> list);
    void onPidFailed(String message);

    void onAddSuccess(String msg);
    void onAddFailed(String msg);
}
//view层
展示的view

public class SearchActivity extends AppCompatActivity implements SView{

    private ImageView back;
    private EditText edit;
    private ImageView img;
    private Button btn_sou;
    private SearchPresent searchPresent;
    private String s;
    private int page;
    private int q;
    private boolean flag = true;
    private List<SearchBean.DataBean> searchData;
    private List<SearchBean.DataBean> searchList=new ArrayList<>();
    private SearchAdapter searchAdapter;
    private RecyclerView fen_rc;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_search);
        //获取控件
        initview();
        //返回
        backview();
        searchPresent = new SearchPresent(this);
        //搜索
        sousuo();
    }

    private void sousuo() {

        page=1;
        btn_sou.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (edit.getText().toString().trim().equals(null) || edit.getText().toString().trim().equals("")) {
                    Toast.makeText(SearchActivity.this, "请输入内容", Toast.LENGTH_SHORT).show();
                } else {
                    searchPresent.getData(edit.getText().toString().trim(),page);
                }
            }
        });
    }

    //返回
    private void backview() {

        back.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                finish();
            }
        });
    }

    private void initview() {
        back = (ImageView) findViewById(R.id.fen_btn_back);
        edit = (EditText) findViewById(R.id.fen_edit);
        img = (ImageView) findViewById(R.id.fen_img);
        btn_sou = (Button) findViewById(R.id.fen_btn_sou);
        fen_rc=(RecyclerView)findViewById(R.id.fen_rc);
    }

    @Override
    public void onSuccess(Object o) {
        SearchBean searchBean = GsonUtils.getInstance().fromJson((String) o, SearchBean.class);
         searchData = searchBean.getData();
        searchList.clear();
         for (int i=0;i<searchData.size();i++){
            searchList.add(searchData.get(i));
        }
        //图片的点击事件
        img.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (flag) {
                    LinearLayoutManager manager = new LinearLayoutManager(SearchActivity.this, LinearLayoutManager.VERTICAL, false);
                    fen_rc.setLayoutManager(manager);
                    searchAdapter = new SearchAdapter(SearchActivity.this, searchList, 2);
                    fen_rc.setAdapter(searchAdapter);
                    searchAdapter.setOnItemClickListener(new SearchAdapter.OnItemClickListener() {
                        @Override
                        public void setOnItemClick(View view, int position) {
                            Intent intent = new Intent(SearchActivity.this, CartActivity.class);
                            intent.putExtra("id", searchList.get(position).getPid());
                            startActivity(intent);
                        }

                        @Override
                        public void setOnItemLongClick(View view, int position) {

                        }
                    });
                    img.setImageDrawable(getResources().getDrawable(R.drawable.lv_icon));
                    flag = true;

                } else {
                    GridLayoutManager manager = new GridLayoutManager(SearchActivity.this, 2, LinearLayoutManager.VERTICAL, false);

                    fen_rc.setLayoutManager(manager);
                    searchAdapter = new SearchAdapter(SearchActivity.this,searchList,1);
                    fen_rc.setAdapter(searchAdapter);
                    searchAdapter.setOnItemClickListener(new SearchAdapter.OnItemClickListener() {
                        @Override
                        public void setOnItemClick(View view, int position) {
                            Intent intent = new Intent(SearchActivity.this, CartActivity.class);
                            intent.putExtra("id", searchList.get(position).getPid());
                            startActivity(intent);
                        }

                        @Override
                        public void setOnItemLongClick(View view, int position) {

                        }
                    });
                    img.setImageDrawable(getResources().getDrawable(R.drawable.grid_icon));
                    flag = false;
                }
            }
        });
    }

    @Override
    public void onFailure(String msg) {

    }

    @Override
    public void onPidSuccess(List<CartBean.DataBean> list) {

    }

    @Override
    public void onPidFailed(String message) {

    }

    @Override
    public void onAddSuccess(String msg) {

    }

    @Override
    public void onAddFailed(String msg) {

    }
}
适配器

public class SearchAdapter extends RecyclerView.Adapter<SearchAdapter.MyViewHolder> {
    private Context context;
    private List<SearchBean.DataBean> searchList;
    private int q;
    private MyViewHolder myViewHolder;

    public SearchAdapter(Context context, List<SearchBean.DataBean> searchList,int q) {
        this.context=context;
        this.searchList=searchList;
        this.q=q;
    }

    @Override
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        if (q == 1) {
            View inflate = View.inflate(context, R.layout.search_view, null);
            myViewHolder = new MyViewHolder(inflate);
        } else {
            View inflate = View.inflate(context, R.layout.search_view2, null);
            myViewHolder = new MyViewHolder(inflate);
        }
        return myViewHolder;
    }
    //声明自己的一个事件回调接口
    public interface OnItemClickListener {
        //条目点击事件
        void setOnItemClick(View view, int position);

        //条目长按事件
        void setOnItemLongClick(View view, int position);
    }

    private OnItemClickListener onItemClickListener;

    public void setOnItemClickListener(OnItemClickListener onItemClickListener) {

        this.onItemClickListener = onItemClickListener;
    }
    @Override
    public void onBindViewHolder(MyViewHolder holder, final int position) {
        holder.tv.setText(searchList.get(position).getTitle());
        holder.price.setText(searchList.get(position).getPrice()+"");
        String img = searchList.get(position).getImages();
        String[] split = img.split("\\|");
        Glide.with(context).load(split[0]).into(holder.img);
        if (null != onItemClickListener) {
            //回调点击事件
            holder.itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //回调
                    onItemClickListener.setOnItemClick(v,position);
                }
            });
            holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
                @Override
                public boolean onLongClick(View v) {
                    onItemClickListener.setOnItemLongClick(v, position);
                    return true;//消费掉
                }
            });
        }
    }


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

    class MyViewHolder extends RecyclerView.ViewHolder{

        private final ImageView img;
        private final TextView tv;
        private final TextView price;

        public MyViewHolder(View itemView) {
            super(itemView);
            img = (ImageView) itemView.findViewById(R.id.search_img);
            tv = (TextView) itemView.findViewById(R.id.search_tv);
            price = (TextView) itemView.findViewById(R.id.search_price);
        }
    }
}
//传id的view
public class CartActivity extends AppCompatActivity implements SView{

    private RecyclerView rc;
    private int id;
    private SearchPresent searchPresent;
    private MySearchShowAdapter mySearchShowAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_cart);
        rc = (RecyclerView) findViewById(R.id.rc);
        Intent intent = getIntent();
        int id = intent.getIntExtra("id", this.id);
        searchPresent = new SearchPresent(this);
        searchPresent.getPid(id);
    }

    @Override
    public void onSuccess(Object o) {

    }

    @Override
    public void onFailure(String msg) {

    }

    @Override
    public void onPidSuccess(List<CartBean.DataBean> list) {
        rc.setLayoutManager(new GridLayoutManager(this, 1, GridLayoutManager.VERTICAL, false));
        mySearchShowAdapter = new MySearchShowAdapter(this, list);
        rc.setAdapter(mySearchShowAdapter);
    }

    @Override
    public void onPidFailed(String message) {

    }

    @Override
    public void onAddSuccess(String msg) {

    }

    @Override
    public void onAddFailed(String msg) {

    }
}
//适配器
public class MySearchShowAdapter extends  RecyclerView.Adapter<MySearchShowAdapter.ViewHolder> implements SView{
    private Context context;
    private  List<CartBean.DataBean> list;
    private SearchPresent searchPresent;

    public MySearchShowAdapter(Context context, List<CartBean.DataBean> list) {
        this.context = context;
        this.list = list;
    }

    @Override
    public MySearchShowAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(context).inflate(R.layout.fen_show, null);
        ViewHolder viewHolder = new ViewHolder(view);
        return viewHolder;
    }

    @Override
    public void onBindViewHolder(MySearchShowAdapter.ViewHolder holder, final int position) {
        String img = list.get(position).getImages();
        String[] split = img.split("\\|");
        Glide.with(context).load(split[0]).into(holder.img);
        holder.text.setText(list.get(position).getTitle());
        holder.textprice.setText(list.get(position).getPrice() + "");

        searchPresent = new SearchPresent(this);
        holder.fen_btn_jia.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                searchPresent.getUid(list.get(position).getPid());
            }
        });
    }

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

    @Override
    public void onSuccess(Object o) {

    }

    @Override
    public void onFailure(String msg) {

    }

    @Override
    public void onPidSuccess(List<CartBean.DataBean> list) {

    }

    @Override
    public void onPidFailed(String message) {

    }

    @Override
    public void onAddSuccess(String msg) {
        Toast.makeText(context, msg + "", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onAddFailed(String msg) {
        Toast.makeText(context, msg + "", Toast.LENGTH_SHORT).show();
    }


    class ViewHolder extends RecyclerView.ViewHolder {
    ImageView img;
    TextView text;
    TextView textprice;
    Button fen_btn_jia;

    public ViewHolder(View itemView) {
        super(itemView);
        img = (ImageView) itemView.findViewById(R.id.img);
        text = (TextView) itemView.findViewById(R.id.text);
        textprice = (TextView) itemView.findViewById(R.id.textprice);
        fen_btn_jia = (Button) itemView.findViewById(R.id.fen_btn_jia);
    }
}
}
布局文件

    <ImageView
        android:id="@+id/fen_btn_back"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:layout_alignBottom="@+id/textView"
        android:layout_alignStart="@+id/fen_edit"
        android:background="@drawable/back"
        android:textSize="20sp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="10dp"
        android:text="搜索商品"
        android:textSize="24sp"
        android:id="@+id/textView" />

    <ImageView
        android:id="@+id/fen_img"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:layout_alignParentRight="true"
        android:layout_marginRight="10dp"
        android:layout_marginTop="10dp"
        android:src="@drawable/lv_icon" />

    <View
        android:layout_width="match_parent"
        android:layout_height="2dp"
        android:layout_marginTop="50dp"
        android:background="#666666" />

    <EditText
        android:layout_width="350dp"
        android:layout_height="wrap_content"
        android:id="@+id/fen_edit"
        android:hint="输入内容"
        android:layout_marginTop="65dp"
        android:layout_marginLeft="20dp"/>

    <Button
        android:id="@+id/fen_btn_sou"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_marginRight="10dp"
        android:layout_marginTop="60dp"
        android:text="搜索" />
    <android.support.v7.widget.RecyclerView
        android:id="@+id/fen_rc"
        android:layout_below="@id/fen_btn_sou"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="10dp"></android.support.v7.widget.RecyclerView>

    <android.support.v7.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/rc">
    </android.support.v7.widget.RecyclerView>

适配器布局

    <ImageView
        android:id="@+id/img"
        android:layout_width="match_parent"
        android:scaleType="fitXY"
        android:layout_height="200dp" />

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <TextView
        android:id="@+id/textprice"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="加入购物车"
        android:id="@+id/fen_btn_jia"/>






猜你喜欢

转载自blog.csdn.net/qq_40087961/article/details/78829407