在这里,我从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();
}
答案 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);
}
});
}