Skip to content Skip to sidebar Skip to footer

How To Create An Interface Between An Adapter And A Viewholder

I want to create an interface between an adapter and a view holder (this view holder is an inner class of another adapter) so that I can update the text view (number). How can I do

Solution 1:

If I implement the function as you want, I will implement like this: (This is like an Observer pattern)

class Fragment/Activity implement OnChangeFilterMainNumberListener{
    FilterMainListAdapter mainAdapter;
    FilterSubListAdapter subAdapter;

    void oncreate() {
         mainAdapter = new FilterMainListAdapter(this);

    }

    @Override
    void OnChangeFilterMainNumberListener(int totalCheckedNumber) {
          .....
         // Update data to sub list
    }
}

class FilterMainListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{

    public interface ChangeFilterMainNumber {
          void OnChangeFilterMainNumberListener(int totalCheckedNumber);
     }
    ChangeFilterMainNumber listener;
    FilterMainListAdapter(ChangeFilterMainNumber listener) {
         this.listener = listener;
    }

    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
        item.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if(listener != null) {
                            listener.OnChangeFilterMainNumberListener(position)
                    }
                }
            });
    }

}

class FilterSubListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{


}

Post a Comment for "How To Create An Interface Between An Adapter And A Viewholder"