如何获取已提取的Firebase数据的父级值?

时间:2019-06-12 08:52:17

标签: java android

在这里,我从firebase数据库中获取数据并在recylerview中进行设置。 它已成功运行,但我需要新意图的父级值 我使用了这种类型的代码。

在recyclerview中,我需要每个绑定的仓库的密钥。 但是问题是每当我使用getAdapterPosition(i)时,它都会返回值,还可以。但我需要它的实际值。

public class AllPostAdapter extends RecyclerView.Adapter<AllPostAdapter.AllPostViewHolder>
{

    }

@NonNull
@Override
public AllPostViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i)
{

    View view=LayoutInflater.from(context).inflate(R.layout.all_post_layout,viewGroup,false);
    AllPostViewHolder viewHolder=new AllPostViewHolder(view);
    return viewHolder;
}

@Override
public void onBindViewHolder(@NonNull AllPostViewHolder allPostViewHolder, int i)

{


//Here i need the parent actual value not like 0,1,2,3...//
holder.name.setText(Post.get(i).getName());

holder.email.setText(Post.get(i).getEmail());
    }

@Override
public int getItemCount() {
    return postArrayList.size();
}

1 个答案:

答案 0 :(得分:0)

假设您的意思是您需要获取Firebase实时数据库项目的唯一密钥。首先,从获取代码的位置获取这样的密钥。

     @Override
public void onChildChanged(DataSnapshot dataSnapshot, String previousChildName) {

    Comment newPost = dataSnapshot.getValue(Post.class);
    String postKey = dataSnapshot.getKey();
    newPost.setKey(postKey)
}

然后,在recyclerview适配器中,您可以获取密钥并像这样通过该密钥调用意图。

    @Override
public void onBindViewHolder(@NonNull AllPostViewHolder allPostViewHolder, int i)
{
    Post post = postArrayList.get(i)
    holder.name.setText(post.getName());
    holder.email.setText(post.getEmail());
    holder.itemView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(context , YourIntent.class);
            intent.putExtra("Key" , post.getKey());
            holder.itemView.getContext().startActivity(intent);
        }
    });
}