gpt4 book ai didi

java - 如何通过子级在自定义适配器类中的位置来访问子级的 KEY

转载 作者:行者123 更新时间:2023-12-01 17:47:08 24 4
gpt4 key购买 nike

我正在尝试访问将我的帖子信息存储在 firebase 中的 key 。我所需要的只是像我们使用库一样访问 key 。

final String TheKey = getRef(position).getkey();

当我使用自定义 RecyclerView 时,如何执行上述代码 如何像上面的代码一样访问 key ?问题是我使用的自定义 RecyclerView 不支持 getRef() 。我想访问onBindViewHolder里面的 key ,哪里可以得到 key ,下面是我的代码。

@Override
public void onBindViewHolder(@NonNull final viewHolder holder, final int position) {
final String kkk = List.get(position).getUid();
Posts posts = List.get(position);
Picasso.get().load(posts.getPostimage()).placeholder(R.drawable.photo).into(holder.PostImage);
Picasso.get().load(posts.getProfileimage()).fit().into(holder.PostProfileimage);
holder.PostUserName.setText(posts.getFullname());
holder.PostDate.setText(posts.getDate());
holder.PostTime.setText(posts.getTime());
holder.PostDescription.setText(posts.getDescription());

holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
PostsKey = FirebaseDatabase.getInstance().getReference().child("Posts");
final int postposition = position;
Toast.makeText(context, "User Clicked at Position "+postposition, Toast.LENGTH_SHORT).show();
// Toast.makeText(context, ""+kkk, Toast.LENGTH_SHORT).show();
final String theKey = PostsKey.getRef().getKey();
Toast.makeText(context, ""+theKey, Toast.LENGTH_SHORT).show();
}
});
}

最佳答案

我假设“库指的是 FirebaseUI,特别是用于在 Android View 中显示 Firebase 实时数据库内容列表的适配器。*

您必须执行与 FirebaseUI 相同的操作,即跟踪所有项的键和值的位置。 FirebaseUI 在 FirebaseArray class 中处理此问题,只需将 Firebase 中的 DataSnapshot 存储在列表中即可。

然而,大多数开发人员似乎更喜欢将快照中的值保留在自定义 Java 类中,以便适配器更直接地使用,在这种情况下,您通常会看到如下内容:

List<Post> posts;

此处的 Post 类具有数据库中每个帖子的属性,您可以使用 snapshot.getValue(Post.class) 之类的内容获取它。但由于 Post 仅具有对象的,因此您丢失了键。

跟踪按键的一种非常简单的方法是添加第二个列表:

List<String> keys;

现在,每当您向列表添加帖子时,您也会向另一个列表添加一个键。像这样的东西:

posts.add(snapshot.getValue(Post.class));
keys.add(snapshot.getKey());

一旦有了两个列表,您就可以通过 keys 中的索引/位置找到 key ,或者先在 posts 中查找帖子,然后再查找通过其索引对应的键。

另请参阅:

关于java - 如何通过子级在自定义适配器类中的位置来访问子级的 KEY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60849269/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com