как я могу получить ключ Firebase коллекции ViewHolder на RecyclerViewAdapter того holder, на который был выполнен щелчок?
Мне нужно отправить ключ для другого действия с использованием намерения и получить его в другом действии, чтобы использовать те же данные, что и для ViewHolder, по которому щелкнули.
Мой код -
@Override
public void onBindViewHolder(@NonNull final PostsAdapter.ViewHolder holder, final int position) {
final String header_data = list_post.get(position).getHeader();
holder.setHeaderText(header_data);
final String desc_data = list_post.get(position).getDesc1();
holder.setDescText(desc_data);
final String date_data = list_post.get(position).getDate1();
holder.setDateText(date_data);
final String image_data = list_post.get(position).getImage_url();
holder.setIntroIMG(image_data);
holder.mView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent goToFullPost = new Intent(context, FullPostActivity.class);
goToFullPost.putExtra("header", header_data);
goToFullPost.putExtra("desc1", desc_data);
goToFullPost.putExtra("date1", date_data);
goToFullPost.putExtra("image_url", image_data);
context.startActivity(goToFullPost);
}
});
}
У вас все еще должен быть доступ к position в вашем onClick. В этом случае вы можете получить ссылку:
public void onClick(View v) {
String key = adapter.getRef(position).getKey();
Intent goToFullPost = new Intent(context, FullPostActivity.class);
goToFullPost.putExtra("header", header_data);
goToFullPost.putExtra("desc1", desc_data);
goToFullPost.putExtra("date1", date_data);
goToFullPost.putExtra("image_url", image_data);
context.startActivity(goToFullPost);
}
И это не onClick .. это на моем onBindViewHolder
Я скопировал обработчик onClick из предоставленного вами кода и добавил необходимую строку кода. adapter в этой строке должен быть ссылкой на ваш экземпляр адаптера. Поскольку этого не было в коде, которым вы поделились, я не могу быть более конкретным, чем это.
Я понял, в чем моя ошибка .. Я использую ListAdapter вместо FirebaseAdapter ... к сожалению, я не понимаю, как я могу все это преобразовать сейчас, должно быть, это тяжелая работа .. Но спасибо :)
Что мне вводить вместо адаптера? Пытался разместить там свой PostsAdapter и использовать getRef, но не сработал ..