I hope you can help me, I have an adapter of a recycler in which I want to send a callback to its fragment that contains it, but I have a problem when linking the adapter. MY ADAPTER
public Cartadapter2(Context context, List<Cart> cartList, Actualizarvalor callback) {
this.context = context;
this.cartList = cartList;
this.callback = callback;
}
how do I implement the adapter in my Fragment
private void displayCartItem(List<Cart> carts ) {
Cartadapter2 cartadapter = new Cartadapter2(getContext(),carts,Actualizarvalor,this);
recycler_cart.setAdapter(cartadapter);
}//en el "actualizarvalor" me genera un error
my COMPLETE FRAGMENT
public class Selection2 extends Fragment implements Actualizarvalor {
TextView catidadproductos, valortotal;
RecyclerView recycler_cart;
CompositeDisposable compositeDisposable;
List<Cart> cartList;
@Override
public void updateItemCount(boolean b) {
Toast.makeText(getActivity(),"Datos de compra actualizados",Toast.LENGTH_SHORT).show();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View v = inflater.inflate(R.layout.fragment_selection2, container, false);
compositeDisposable = new CompositeDisposable();
catidadproductos=(TextView)v.findViewById(R.id.cant_productoss);
valortotal=(TextView)v.findViewById(R.id.total);
recycler_cart = (RecyclerView)v.findViewById(R.id.recycler_cart3);
recycler_cart.setLayoutManager(new LinearLayoutManager(getActivity()));
recycler_cart.setHasFixedSize(true);
initDB();
loadCartItems();
catidadproductos.setText(String.valueOf (Common.cartRepository.countCartItems()));
valortotal.setText(String.valueOf(Common.cartRepository.sumPrice()));
return v;
}
private void loadCartItems() {
compositeDisposable.add(
Common.cartRepository.getCartItems()
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe(new Consumer<List<Cart>>() {
@Override
public void accept(List<Cart> carts) throws Exception {
displayCartItem(carts);
}
})
);
}
private void displayCartItem(List<Cart> carts ) {
Cartadapter2 cartadapter = new Cartadapter2(getContext(),carts,Actualizarvalor,this);
recycler_cart.setAdapter(cartadapter);
}
private void initDB() {
Common.edmtRoomDatabase = EDMTRoomDatabase.getInstance(getActivity());
Common.cartRepository = CartRepository.getInstance(CartDataSource.getInstance(Common.edmtRoomDatabase.cartDAO()));
Common.favoriteRepository = FavoriteRepository.getInstance(FavoriteDataSource.getInstance(Common.edmtRoomDatabase.favoriteDAO()));
}
}
the Interface UpdateValue and I have it created.
public interface Actualizarvalor {
void updateItemCount(boolean b);
}
Thank you very much for your help