java - 如何使用 Firebase 结果检索 ListView 中的位置

标签 java android firebase firebase-realtime-database

使用FirebaseAdapter 或任何Firebase-UI 依赖项,我现在已经完全原生了,但我在此行尝试传递额外内容时遇到问题:

mRootDatabase = getAdapter(mContext).getItem(position);

Required DatabaseReference , Found UserPojo

public void clickListItems(ListView listView,final DatabaseReference mRootDatabase) {
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
                Toast.makeText(mContext, "Clicked: " + getmList().get(position), Toast.LENGTH_SHORT).show();
                mRootDatabase = getAdapter(mContext).getItem(position);
                Intent intent = new Intent(mContext, UserEdit.class);
                intent.putExtra("uid", mRootDatabase.getKey());
                intent.putExtra("Name",getAdapter(mContext).getItem(position).getName());
                intent.putExtra("Email", getAdapter(mContext).getItem(position).getEmail());
                intent.putExtra("Pay", getAdapter(mContext).getItem(position).getPay());
                intent.putExtra("LastCon", getAdapter(mContext).getItem(position).getLastCon());
                intent.putExtra("FirstCon", getAdapter(mContext).getItem(position).getFirstCon());
                mContext.startActivity(intent);
            }
        });

    }

FirebaseListAdapter 中,您可以使用 getRef() 来更快地执行此操作,但我想知道没有它如何实现相同的方法,因为我的应用程序没有实现任何FirebaseAdapters ,我不想再次重做所有代码

编辑:

这就是我得到适配器的方式

 public ArrayAdapter<UserPojo> getAdapter(Context adapterContext) {
        return new ArrayAdapter<UserPojo>(adapterContext,android.R.layout.simple_list_item_1,getmList());
    }

谢谢!

最佳答案

要解决这个问题,您需要更改以下代码行:

mRootDatabase = getAdapter(mContext).getItem(position);

mRootDatabase = adapter.getRef(position);

其中 adapter 变量是您用来显示数据的实际适配器。

编辑:

您不能使用 getRef() 方法,除非您使用的是 Firebase-UI 库。您无法从 ArrayAdapter 对象获取 DatabaseReference 对象。没有 the methods在此类中返回一个 DatabaseReference 对象。实现此目的的唯一方法是使用 Firebase-UI图书馆。

关于java - 如何使用 Firebase 结果检索 ListView 中的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52081205/

相关文章:

java - JBPM 工作流程在人工任务之后没有继续进行

java - 在 Spring Hibernate 中映射子类

java - 如何让ClusterManager识别默认Marker?

java - 如何将 Intent 数据设置为当前 Activity editText?

android - 添加滑动以在 fragment 之间切换

javascript - 如何根据文档中的特定字段从集合中获取文档

ios - Firebase 应用程序邀请在 swift ios 上崩溃

java - 将流拆分为具有 N 个元素的子流

android - 如何从存储库返回LiveData

firebase - Firestore 多对多关系