功能:
在购物车页面显示商品的信息,然后将商品存储在sharedprefrence中(没有实现,只是使用了hasmap来实现),还有就是点击加减控件不能点击,但是这个控件在别的布局就能点击
步骤:
2.在hotAdapter中,将信息存储在hasmap中,然后在cartAdapter中读取数据,显示出来
hotAdapte:
package zuo.com.ui.adapter; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; import com.facebook.drawee.backends.pipeline.Fresco; import com.facebook.drawee.backends.pipeline.PipelineDraweeController; import com.facebook.drawee.view.SimpleDraweeView; import com.facebook.imagepipeline.request.ImageRequest; import com.facebook.imagepipeline.request.ImageRequestBuilder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import zuo.com.ui.R; import zuo.com.ui.bean.HotBean; import zuo.com.ui.bean.HotGoodsBean; import zuo.com.ui.bean.ShoppingCart; import zuo.com.ui.fragment.CartFragment; import zuo.com.ui.util.CartProvider; /** * Created by Administrator on 2016/10/13. */ public class HotGoodsAdapter extends RecyclerView.Adapter<HotGoodsAdapter.ViewHolder>{ public static HashMap<String,List<ShoppingCart>> hashMap=new HashMap(); private List<ShoppingCart> list=new ArrayList<>(); private LayoutInflater layoutInflater; private HotBean hotBean; private CartProvider cartProvider; private Context context; public HotGoodsAdapter(HotBean hotBean){ this.hotBean=hotBean; } //绑定布局 @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { layoutInflater=LayoutInflater.from(parent.getContext()); View view=layoutInflater.inflate(R.layout.item_hotadapter,parent,false); // cartProvider=new CartProvider(context); return new ViewHolder(view); } @Override public void onBindViewHolder(ViewHolder holder, final int position) { Uri uri=Uri.parse(hotBean.getList().get(position).getImgUrl()); ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri) .setProgressiveRenderingEnabled(true) .build(); PipelineDraweeController controller = (PipelineDraweeController) Fresco.newDraweeControllerBuilder() .setImageRequest(request) .build(); holder.draweeView.setController(controller); holder.textPrice.setText("¥"+hotBean.getList().get(position).getPrice()); holder.textTitle.setText(hotBean.getList().get(position).getName()); holder.button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //在这个点击事件中将数据传递到shoppingcart中,然后再将shoppingcart存入CartProvider中 ShoppingCart shoppingCart=new ShoppingCart(); shoppingCart.setChecked(true); shoppingCart.setCount(1); shoppingCart.setDescription(hotBean.getList().get(position).getDescription()); shoppingCart.setImgUrl(hotBean.getList().get(position).getImgUrl()); shoppingCart.setName(hotBean.getList().get(position).getName()); shoppingCart.setPrice(hotBean.getList().get(position).getPrice()); // shoppingCart.setPrice(Integer.parseInt(hotBean.getList().get(position).getPrice())); // cartProvider.put(shoppingCart); list.add(shoppingCart); hashMap.put("123", list); } }); } @Override public int getItemCount() { return hotBean.getList().size(); } public class ViewHolder extends RecyclerView.ViewHolder{ SimpleDraweeView draweeView; TextView textTitle; TextView textPrice; Button button; public ViewHolder(View itemView) { super(itemView); draweeView = (SimpleDraweeView) itemView.findViewById(R.id.drawee_view); textTitle= (TextView) itemView.findViewById(R.id.text_title); textPrice= (TextView) itemView.findViewById(R.id.text_price); button= (Button) itemView.findViewById(R.id.hot_button); } } }
cartAdapte:
package zuo.com.ui.adapter; import android.net.Uri; import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.CheckBox; import android.widget.TextView; import com.facebook.drawee.backends.pipeline.Fresco; import com.facebook.drawee.backends.pipeline.PipelineDraweeController; import com.facebook.drawee.view.SimpleDraweeView; import com.facebook.imagepipeline.request.ImageRequest; import com.facebook.imagepipeline.request.ImageRequestBuilder; import java.util.List; import zuo.com.ui.R; import zuo.com.ui.bean.ShoppingCart; import zuo.com.ui.number.NumberAddSubView; import zuo.com.ui.util.CartProvider; /** * Created by Administrator on 2016/10/17. */ public class CartAdapter extends RecyclerView.Adapter<CartAdapter.ViewHolder> { private LayoutInflater layoutInflater; private List<ShoppingCart> carts; public CartAdapter(List<ShoppingCart> carts){ this.carts=carts; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { layoutInflater=LayoutInflater.from(parent.getContext()); View view=layoutInflater.inflate(R.layout.template_cart,parent,false); return new ViewHolder(view); } @Override public void onBindViewHolder(ViewHolder holder, int position) { holder.textView1.setText(carts.get(position).getName()); Uri uri=Uri.parse(carts.get(position).getImgUrl()); ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri) .setProgressiveRenderingEnabled(true) .build(); PipelineDraweeController controller = (PipelineDraweeController) Fresco.newDraweeControllerBuilder() .setImageRequest(request) .build(); holder.simpleDraweeView.setController(controller); holder.textView2.setText("¥"+carts.get(position).getPrice()); } @Override public int getItemCount() { if(carts!=null) { return carts.size(); }else{ return 0; } } class ViewHolder extends RecyclerView.ViewHolder{ private CheckBox checkBox; private SimpleDraweeView simpleDraweeView; private TextView textView1,textView2; private NumberAddSubView numberAddSubView1; public ViewHolder(View itemView) { super(itemView); checkBox= (CheckBox) itemView.findViewById(R.id.checkbox); checkBox.setClickable(true); simpleDraweeView= (SimpleDraweeView) itemView.findViewById(R.id.drawee_view); textView1= (TextView) itemView.findViewById(R.id.text_title); textView2= (TextView) itemView.findViewById(R.id.text_price); numberAddSubView1= (NumberAddSubView) itemView.findViewById(R.id.num_control); numberAddSubView1.setValue(1); numberAddSubView1.setClickable(true); } } }
效果图:不能点击自定义加减控件
另外一个可以点击