Получить ключ Firebase

как я могу получить ключ 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);

     }
  });
}
0
0
56
1

Ответы 1

У вас все еще должен быть доступ к 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);

 }

Что мне вводить вместо адаптера? Пытался разместить там свой PostsAdapter и использовать getRef, но не сработал ..

Dor Furman 22.04.2018 21:02

И это не onClick .. это на моем onBindViewHolder

Dor Furman 22.04.2018 21:22

Я скопировал обработчик onClick из предоставленного вами кода и добавил необходимую строку кода. adapter в этой строке должен быть ссылкой на ваш экземпляр адаптера. Поскольку этого не было в коде, которым вы поделились, я не могу быть более конкретным, чем это.

Frank van Puffelen 22.04.2018 23:54

Я понял, в чем моя ошибка .. Я использую ListAdapter вместо FirebaseAdapter ... к сожалению, я не понимаю, как я могу все это преобразовать сейчас, должно быть, это тяжелая работа .. Но спасибо :)

Dor Furman 23.04.2018 15:21

Другие вопросы по теме