Я расширяю класс FirestoreAdapter, чтобы заполнить данные из хранилища. Как я могу передать выбранный предмет Tittle в основной класс. Я использую интерфейс для отправки идентификатора документа выбранного элемента с тем, как я могу передать выбранный заголовок, т. Е. TextView элемента, по которому щелкнули. Или я должен использовать дополнительный Intent.put, чтобы передать его основному Activity.
public class CategoryMainAdapter extends FirestoreAdapter<CategoryMainAdapter.ViewHolder> {
private static final String TAG = "CategoryMainAdapter";
public interface OnItemSelectedListener {
void OnItemSelected(DocumentSnapshot item);
}
private OnItemSelectedListener mListener;
public CategoryMainAdapter(Query query,OnItemSelectedListener listener) {
super(query);
mListener = listener;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
return new ViewHolder(inflater.inflate(R.layout.categories_list,parent,false));
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.bind(getSnapshot(position),mListener);
}
class ViewHolder extends RecyclerView.ViewHolder{
ImageView CategoryImageView;
TextView CategoryTextView;
public ViewHolder(@NonNull View itemView) {
super(itemView);
CategoryImageView = itemView.findViewById(R.id.Cateimage_view);
CategoryTextView = itemView.findViewById(R.id.category_name);
}
public void bind(final DocumentSnapshot snapshot, final OnItemSelectedListener mListener) {
MainCategory category = snapshot.toObject(MainCategory.class);
Resources resources = itemView.getResources();
CategoryTextView.setText(category.getCategory_name());
Glide.with(CategoryImageView.getContext())
.load(category.getCategory_url())
.into(CategoryImageView);
//Click Listener
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (mListener != null){
mListener.OnItemSelected(snapshot);
}
}
});
для передачи этого с интерфейсом: CategoryTextView.setText (category.getCategory_name ());