Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 回收视图赢得';t接收捆绑数据_Android_Android Recyclerview_Bundle - Fatal编程技术网

Android 回收视图赢得';t接收捆绑数据

Android 回收视图赢得';t接收捆绑数据,android,android-recyclerview,bundle,Android,Android Recyclerview,Bundle,我试图将产品详细信息活动的捆绑包传递到具有回收视图的购物车,但当我单击“添加到购物车”时,购物车已打开,但仍然为空,我不知道代码出了什么问题 这里是第一个活动 public class product_details extends AppCompatActivity { ImageView product_img, share; TextView name, price; public int img; public int price1; public String name1; @Ov

我试图将产品详细信息活动的捆绑包传递到具有回收视图的购物车,但当我单击“添加到购物车”时,购物车已打开,但仍然为空,我不知道代码出了什么问题

这里是第一个活动

public class product_details extends AppCompatActivity {
ImageView product_img, share;
TextView name, price;
public int img;
public int price1;
public String name1;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_product_details);
    product_img = (ImageView) findViewById(R.id.Product_Img);
    name = (TextView) findViewById(R.id.product_name);
    price = (TextView) findViewById(R.id.product_price);
    share = (ImageView) findViewById(R.id.share);
    img = getIntent().getIntExtra("img", 00);
    Glide.with(this).load(img).into(product_img);
    name1 = getIntent().getStringExtra("name");
    name.setText(name1);
    price1 = getIntent().getIntExtra("price", 0);
    price.setText(String.valueOf(price1));
    ImageView cart = (ImageView) findViewById(R.id.add_cart);
    cart.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Intent intent = new Intent(v.getContext(), CartActivity.class);
            Bundle extras = new Bundle();
            extras.putString("price1", String.valueOf((price1)));
            extras.putString("name1", name1);
            extras.putString("img1",String.valueOf(img));
            intent.putExtras(extras);
            startActivity(intent);

        }
我的第二节活动课

public class CartRecycler {
int images_id;
String productname,productprice,productquantity;

public String getProductquantity() {
    return productquantity;
}

public CartRecycler(int images_id , String productname , String productprice , String productquantity){
    this.setImages_id(images_id);
    this.setProductname(productname);
    this.setProductprice(productprice);
    this.setProductquantity(productquantity);

}

public CartRecycler(String productname, int images_id, String productprice) {
    this.productname = productname;
    this.images_id = images_id;
    this.productprice = productprice;
}

public int getImages_id() {
    return images_id;
}

public void setImages_id(int images_id) {
    this.images_id = images_id;
}

public String getProductname() {
    return productname;
}

public void setProductname(String productname) {
    this.productname = productname;
}

public String getProductprice() {
    return productprice;
}
public void setProductprice(String productprice) {
    this.productprice = productprice;
}

public void setProductquantity(String productquantity) {
    this.productquantity = productquantity;
}
}

购物车适配器

public class CartAdapter extends RecyclerView.Adapter<CartAdapter.CartViewHolder> {
ArrayList<CartRecycler> adapterlist  = new ArrayList<>();
CartActivity cartactivity;
Context cnx;
public CartAdapter(ArrayList<CartRecycler> adapterlist,Context cnx){
    this.adapterlist =adapterlist;
    this.cnx =cnx;
    cartactivity = (CartActivity) cnx;
}
@Override
public CartViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.cart_cards,parent,false);
    CartViewHolder cartviewholder = new CartViewHolder(v,cartactivity);

    return cartviewholder;
}

@Override
public void onBindViewHolder(CartViewHolder holder, int position) {

    holder.image.setImageResource(adapterlist.get(position).getImages_id());
    holder.name.setText(adapterlist.get(position).getProductname());
    holder.price.setText(adapterlist.get(position).getProductprice());
    holder.quantity.setText(adapterlist.get(position).getProductquantity());
    if(!cartactivity.edit_mode){
        holder.checkornot.setVisibility(View.GONE);
    }
    else {
        holder.checkornot.setVisibility(View.VISIBLE);
        holder.checkornot.setChecked(false);

    }
}


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



public static class CartViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
    ImageView image;
    TextView price,quantity,name;
    CheckBox checkornot;
    CartActivity cartactivity;
    CardView cardv;
    public CartViewHolder(View itemView, CartActivity cartactivity) {
        super(itemView);
        image = (ImageView) itemView.findViewById(R.id.cartimage);
        name = (TextView) itemView.findViewById(R.id.pn);
        price = (TextView) itemView.findViewById(R.id.p);
        quantity = (TextView) itemView.findViewById(R.id.q);
        checkornot = (CheckBox) itemView.findViewById(R.id.ckbox);
        this.cartactivity= cartactivity;
        cardv = (CardView) itemView.findViewById(R.id.cardd);
        cardv.setOnLongClickListener((View.OnLongClickListener) cartactivity);
        checkornot.setOnClickListener(this);
    }
    @Override
    public void onClick(View view) {
        cartactivity.prepareselection(view,getAdapterPosition());
    }
}
public void updateadapter(ArrayList<CartRecycler> list){
    for(CartRecycler cartRecycler:list){
        adapterlist.remove(cartRecycler);
    }
    notifyDataSetChanged();
}
公共类CartAdapter扩展了RecyclerView.Adapter{ ArrayList adapterlist=新的ArrayList(); cart活动cart活动; 上下文cnx; 公共CartAdapter(ArrayList adapterlist,上下文cnx){ this.adapterlist=适配器列表; this.cnx=cnx; cartactivity=(cartactivity)cnx; } @凌驾 公共CartViewHolder onCreateViewHolder(视图组父级,int-viewType){ 视图v=LayoutInflater.from(parent.getContext()).flate(R.layout.cart\u cards,parent,false); CartViewHolder CartViewHolder=新的CartViewHolder(v,cartactivity); 退票人; } @凌驾 公共无效onBindViewHolder(CartViewHolder,内部位置){ holder.image.setImageResource(adapterlist.get(position.getImages_id()); holder.name.setText(adapterlist.get(position.getProductname()); holder.price.setText(adapterlist.get(position.getProductprice()); holder.quantity.setText(adapterlist.get(position.getProductquantity()); 如果(!cartactivity.edit_模式){ holder.checkornot.setVisibility(View.GONE); } 否则{ holder.checkornot.setVisibility(视图可见); holder.checkornot.setChecked(假); } } @凌驾 public int getItemCount(){ 返回adapterlist.size(); } 公共静态类CartViewHolder扩展了RecyclerView.ViewHolder实现了View.OnClickListener{ 图像视图图像; text查看价格、数量、名称; 复选框checkornot; cart活动cart活动; CardView-cardv; 公共CartViewHolder(查看项目视图、CartActivity CartActivity){ 超级(项目视图); image=(ImageView)itemView.findViewById(R.id.cartimage); name=(TextView)itemView.findViewById(R.id.pn); price=(TextView)itemView.findViewById(R.id.p); 数量=(TextView)itemView.findViewById(R.id.q); checkornot=(复选框)itemviewbyd(R.id.ckbox); this.cartactivity=cartactivity; cardv=(CardView)itemView.findviewbyd(R.id.cardd); cardv.setOnLongClickListener((View.OnLongClickListener)cartactivity); checkornot.setOnClickListener(此); } @凌驾 公共void onClick(视图){ cartactivity.prepareselection(视图,getAdapterPosition()); } } 公共void updateadapter(ArrayList列表){ 用于(CartRecycler CartRecycler:列表){ 适配器列表。移除(cartRecycler); } notifyDataSetChanged(); } }

第二项活动

public class CartActivity extends AppCompatActivity implements View.OnLongClickListener{
Button l;
ImageView imv;
Toolbar t;
RecyclerView rv;
RecyclerView.LayoutManager layoutmanager;
RecyclerView.Adapter adapter;
ArrayList<CartRecycler> cartitems = new ArrayList<>();
ArrayList<CartRecycler> selected_items_list = new ArrayList<>();
int countt =0;
boolean edit_mode =false;
TextView counterr;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_cart);
    t = (Toolbar) findViewById(R.id.toolb);
    setSupportActionBar(t);
    getSupportActionBar().setDisplayShowTitleEnabled(false);





    l = (Button) findViewById(R.id.checkoutsummary);
    l.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent n = new Intent(CartActivity.this,SummaryActivity.class);
            startActivity(n);
        }
    });
    rv = (RecyclerView) findViewById(R.id.mycartrecycler);
    layoutmanager = new LinearLayoutManager(this);
    rv.setLayoutManager(layoutmanager);
    rv.setHasFixedSize(true);

    Bundle extras = getIntent().getExtras();
    if (extras != null) {
        String price = extras.getString("price1");
        String img1 = extras.getString("img1");
        int imag1 = Integer.parseInt(img1);
        String name = extras.getString("name1");


        for (int i = 0; i < cartitems.size(); i++) {
            CartRecycler cart = new CartRecycler(name, imag1, price);
            cartitems.add(cart);
            adapter.notifyDataSetChanged();
            i++;

        }

    } else {
        Intent intent = new Intent(this, test.class);
        startActivity(intent);
    }



    adapter = new CartAdapter(cartitems,CartActivity.this);
    rv.setAdapter(adapter);

    counterr = (TextView) findViewById(R.id.selecteditemcounter);
    counterr.setVisibility(View.GONE);
}

@Override
public boolean onLongClick(View view) {
    t.getMenu().clear();
    t.inflateMenu(R.menu.cart_edit_mode);
    counterr.setVisibility(View.VISIBLE);
    edit_mode = true;
    adapter.notifyDataSetChanged();

    return true;
}
public void prepareselection(View view,int position){

    if(((CheckBox)view).isChecked()){
        selected_items_list.add(cartitems.get(position));
        countt = countt+1;
        updatecounter(countt);
    }
    else {
        selected_items_list.remove(cartitems.get(position));
        countt = countt -1;
        updatecounter(countt);
    }

}
public void updatecounter(int counter){
    if(counter==0){
        counterr.setText("0 items selected");
    }
    else {
        counterr.setText(counter+" item selected");
    }
}
public boolean onOptionsItemSelected(MenuItem item){
    if(item.getItemId()==R.id.item_delete){
        CartAdapter cartAdapter = (CartAdapter) adapter;
        cartAdapter.updateadapter(selected_items_list);

    }

    else if(item.getItemId()== android.R.id.home)
    {
        adapter.notifyDataSetChanged();
    }
    return true;
}
公共类CartActivity扩展AppCompatActivity实现View.OnLongClickListener{
按钮l;
ImageView imv;
t;
回收视图rv;
RecyclerView.LayoutManager LayoutManager;
RecyclerView.适配器;
ArrayList cartitems=新的ArrayList();
ArrayList selected_items_list=新建ArrayList();
int countt=0;
布尔编辑模式=假;
文本视图计数器;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u cart);
t=(工具栏)findviewbyd(R.id.toolb);
设置支架操作杆(t);
getSupportActionBar().setDisplayShowTitleEnabled(false);
l=(按钮)findViewById(R.id.checkoutsummary);
l、 setOnClickListener(新视图。OnClickListener(){
@凌驾
公共void onClick(视图){
意图n=新意图(CartActivity.this,SummaryActivity.class);
星触觉(n);
}
});
rv=(RecyclerView)findViewById(R.id.mycartrecycler);
layoutmanager=新的LinearLayoutManager(此);
rv.设置布局经理(布局经理);
rv.setHasFixedSize(真);
Bundle extras=getIntent().getExtras();
如果(附加值!=null){
字符串价格=extras.getString(“价格1”);
字符串img1=extras.getString(“img1”);
int imag1=Integer.parseInt(img1);
String name=extras.getString(“name1”);
对于(int i=0;i
}

对于(int i=0;i