How to get Int value from an Adapter to Activity in android
I want to get an int value from my adapter class to my activity but I am getting nothing while using this code:
Here is my adapter:
package com.capi.ccecommerceapp.Adapter; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; import com.capi.ccecommerceapp.Model.Cart; import com.capi.ccecommerceapp.R; import com.google.firebase.auth.FirebaseAuth; import com.google.firebase.auth.FirebaseUser; import com.google.firebase.database.DataSnapshot; import com.google.firebase.database.DatabaseError; import com.google.firebase.database.DatabaseReference; import com.google.firebase.database.FirebaseDatabase; import com.google.firebase.database.ValueEventListener; import java.util.List; public class CartAdapter extends RecyclerView.Adapter<CartAdapter.ViewHolder> { private Context context; private List<Cart> cartList; private String productImage; public int overTotalPrice = 0; public CartAdapter(Context context, List<Cart> cartList ) { this.context = context; this.cartList = cartList; } @NonNull @Override public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(context).inflate(R.layout.cart_item, parent, false); return new ViewHolder(view); } @Override public void onBindViewHolder(@NonNull final ViewHolder holder, final int position) { holder.cartName.setText(cartList.get(position).getProductName()); holder.cartPrice.setText(cartList.get(position).getProductPrice()); holder.cart_qty.setText(String.valueOf(cartList.get(position).getProductQuantity())); int oneTypeProductTPrice = ((Integer.parseInt(cartList.get(position).getProductPrice()))) * cartList.get(position).getProductQuantity(); overTotalPrice = overTotalPrice + oneTypeProductTPrice; /*FirebaseAuth auth = FirebaseAuth.getInstance(); FirebaseUser user = auth.getCurrentUser();*/ /* holder.cartPlus.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (cartQty<10) { cartQty++; } } }); holder.cartMinus.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (cartQty>1) { cartQty--; } } }); holder.cart_qty.setText(cartQty); holder.deleteBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { cartList.remove(cartList.get(position)); } });*/ /* holder.wishlistBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (holder.wishlistBtn.getTag().equals("add")) { holder.wishlistBtn.setImageResource(R.drawable.ic_love_fill); holder.wishlistBtn.setTag("added"); } else { holder.wishlistBtn.setImageResource(R.drawable.love); holder.wishlistBtn.setTag("add"); } } });*/ DatabaseReference reference = FirebaseDatabase.getInstance().getReference() .child("Products") .child(cartList.get(position).getProductId()) .child("productImage"); reference.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(@NonNull DataSnapshot snapshot) { if (snapshot.exists()) { productImage = snapshot.getValue(String.class); Glide.with(context).load(productImage).into(holder.cartImage); } } @Override public void onCancelled(@NonNull DatabaseError error) { } }); } @Override public int getItemCount() { return cartList.size(); } public static class ViewHolder extends RecyclerView.ViewHolder { ImageView cartImage; TextView cartName; TextView cartPrice; ImageView wishlistBtn; ImageView deleteBtn; ImageView cartPlus; ImageView cartMinus; TextView cart_qty; public ViewHolder(@NonNull View itemView) { super(itemView); cartImage = itemView.findViewById(R.id.cart_image); cartName = itemView.findViewById(R.id.cart_name); cartPrice = itemView.findViewById(R.id.cart_price); wishlistBtn = itemView.findViewById(R.id.add_to_wishlist); deleteBtn = itemView.findViewById(R.id.delete_cart); cartPlus = itemView.findViewById(R.id.cart_add); cartMinus = itemView.findViewById(R.id.cart_minus); cart_qty = itemView.findViewById(R.id.cart_quantity); } } }
and here is my activity code where I want to set it in textView:
package com.capi.ccecommerceapp.Fragment; import android.content.Intent; import android.os.Bundle; import androidx.annotation.NonNull; import androidx.fragment.app.Fragment; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView; import com.capi.ccecommerceapp.Adapter.CartAdapter; import com.capi.ccecommerceapp.address.ShiptoActivity; import com.capi.ccecommerceapp.Model.Cart; import com.capi.ccecommerceapp.R; import com.google.firebase.auth.FirebaseAuth; import com.google.firebase.auth.FirebaseUser; import com.google.firebase.database.DataSnapshot; import com.google.firebase.database.DatabaseError; import com.google.firebase.database.DatabaseReference; import com.google.firebase.database.FirebaseDatabase; import com.google.firebase.database.ValueEventListener; import java.util.ArrayList; import java.util.List; public class CartFragment extends Fragment { private RecyclerView cartRecyclerView; private List<Cart> cartList; private CartAdapter cartAdapter; private Button next; private FirebaseAuth auth; private FirebaseUser user; private TextView subtotal; private TextView items; private TextView shipping; private TextView totalPrice; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_cart, container, false); cartRecyclerView = view.findViewById(R.id.cartRecycler); next = view.findViewById(R.id.checkout_btn); auth = FirebaseAuth.getInstance(); user = auth.getCurrentUser(); next.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { startActivity(new Intent(getContext(), ShiptoActivity.class)); } }); subtotal = view.findViewById(R.id.subtotal_price); items = view.findViewById(R.id.items); shipping = view.findViewById(R.id.shipping_price); LinearLayoutManager layoutManager = new LinearLayoutManager(getContext()); cartRecyclerView.setLayoutManager(layoutManager); cartList = new ArrayList<>(); cartAdapter = new CartAdapter(getContext(), cartList); cartRecyclerView.setAdapter(cartAdapter); loadCart(); return view; } private void loadCart() { DatabaseReference reference = FirebaseDatabase.getInstance().getReference().child("Cart") .child(user.getUid()); reference.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(@NonNull DataSnapshot snapshot) { for (DataSnapshot dataSnapshot : snapshot.getChildren()) { Cart cart = dataSnapshot.getValue(Cart.class); cartList.add(cart); } cartAdapter.notifyDataSetChanged(); subtotal.setText("$" + cartAdapter.overTotalPrice); items.setText("Items("+cartAdapter.getItemCount()+")"); int shippingPrice = (cartAdapter.overTotalPrice / 20); shipping.setText("$" + shippingPrice); /*int totalPriceFinal = shippingPrice + cartAdapter.getOverTotalPrice(); totalPrice.setText("$" + totalPriceFinal);*/ } @Override public void onCancelled(@NonNull DatabaseError error) { } }); } }
I want to get this int:public int overTotalPrice = 0;
And I am getting it as:subtotal.setText("$"+cartAdapter.overTotalPrice);
Anyone have a solution? ??????????????????????? ???????????????????? ??????????????????????