我有一个安卓应用程序,其中我有一个使用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);
}
});
}
你可以在RecyclerView的行的两边创建2个透明布局(可以是ConstraintLayout)。将OnClickListeners附加到它们上,在里面做任何你想做的事情。