So i have an android app where i have a list of items displayed using firebase db. so what i want to do is when i click on right side of the item in recyclerview it performs a function and adds one item to cart and does that every time its clicked and when left side is clicked it removes item from cart.
I'm not able to figure out how to capture these clicks weather user has clicked on right or left.
if you've used tinder the way it works there you click on picture on right and it changes to next picture.
currently im using this code to take user to another activity and select the quantity. please help me this way my app would be more user friendly and fun to use.
code :
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);
}
});
}