如何在安卓系统中捕获点击回收视图

问题描述 投票:0回答:1

我有一个安卓应用程序,其中我有一个使用firebase数据库显示的项目列表,所以我想做的是,当我点击回收视图中项目的右侧时,它执行一个功能,并将一个项目添加到购物车中,并且每次点击时都会这样做,而当左侧被点击时,它将从购物车中删除项目。

我不知道如何捕捉这些点击,无论用户是点击了右边还是左边。

如果你用过Tinder,它的工作方式是你点击右边的图片,然后它就会变成下一张图片。

目前,我使用这个代码来带用户到另一个活动,并选择数量.请帮助我,这样我的应用程序将更加用户友好和有趣的使用。

代码 。

 FirebaseRecyclerOptions<Items> options = new FirebaseRecyclerOptions.Builder<Items>().setQuery(firebaseDatabase.child("Items").child(categ).orderByChild("name"), Items.class).build();


   FirebaseRecyclerAdapter<Items, UsersViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Items, NewOrder.UsersViewHolder>(options)
   {





       @Override
       public NewOrder.UsersViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {


           View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.items2,parent,false);

           return new NewOrder.UsersViewHolder(view);

       }

       @Override
       protected void onBindViewHolder(NewOrder.UsersViewHolder holder, int position, Items model) {




           holder.setName(model.getName());
           holder.setDescription(model.getDescription());
           holder.setProfilePic(model.getImage());
           holder.setPrice(model.getPrice());

           final String PID = getRef(position).getKey();
           String quant = model.getQuantity().toString();
           Integer qtt = Integer.parseInt(quant);
           if(qtt <= 5){


               holder.setoos();

               holder.mview.setOnClickListener(new View.OnClickListener() {
                   @Override
                   public void onClick(View v) {


                       Toast.makeText(NewOrder.this, "Sorry This Product is out of stock!", Toast.LENGTH_SHORT).show();

                   }
               });

           }else {




            holder.mview.setOnClickListener(new View.OnClickListener() {
                   @Override
                   public void onClick(View v) {


                       Intent profileIntent = new Intent(NewOrder.this, Item.class);
                       profileIntent.putExtra("Product id", PID);
                       profileIntent.putExtra("Category", categ);
                       profileIntent.putExtra("Shop id",shopname);
                       profileIntent.putExtra("Shopkeeper id",shopid);
                       startActivity(profileIntent);

                   }
               });


  progressBar.setVisibility(View.GONE);


       }

   };


   items.setAdapter(firebaseRecyclerAdapter);
   items.setItemViewCacheSize(500);
   firebaseRecyclerAdapter.startListening();


   }

public class UsersViewHolder extends RecyclerView.ViewHolder {

    View mview;


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

        mview = itemView;
    }


    public void setName(String name) {

        TextView userNameView = mview.findViewById(R.id.name);
        String str = name;

        String cap = str.substring(0, 1).toUpperCase() + str.substring(1);
        userNameView.setText(cap);

    }

    public void setDescription(String description) {

        TextView userStatusView = mview.findViewById(R.id.description);
        userStatusView.setText(description);

    }

    public void setPrice(String price) {

        TextView userStatusView = mview.findViewById(R.id.price);
        userStatusView.setText("₹"+price);

    }

    public void setoos(){

        TextView orderstatus = mview.findViewById(R.id.oof);
        orderstatus.setVisibility(View.VISIBLE);
    }

    public void setProfilePic(String profilepic) {






        final ImageView image = mview.findViewById(R.id.userSingleImage);


        final StorageReference mImageRef =
                FirebaseStorage.getInstance().getReference(shopname+"/Product_image/thumbs/"+ profilepic + ".jpg");
        final long ONE_MEGABYTE = 1024 * 1024;


        mImageRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
            @Override
            public void onSuccess(Uri uri) {

                Glide.with(mview)
                        .load(mImageRef)
                        .into(image);

            }
        });





    }
android android-studio android-recyclerview
1个回答
0
投票

你可以在RecyclerView的行的两边创建2个透明布局(可以是ConstraintLayout)。将OnClickListeners附加到它们上,在里面做任何你想做的事情。

© www.soinside.com 2019 - 2024. All rights reserved.