如何使用Firebase结果检索ListView中的位置 [英] How to retrieve the position in a ListView with Firebase results

查看:99
本文介绍了如何使用Firebase结果检索ListView中的位置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用 FirebaseAdapter 或任何 Firebase-UI 依赖关系,I现在已经使这个完全原生,但我在这一行尝试传递额外的问题:

I'm not using FirebaseAdapter or any Firebase-UI dependency, I have made this completly native for now, but I'm getting a problem at this line trying to pass extras:


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

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

必需的DatabaseReference,找到UserPojo

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()来更快地做到这一点,但我想知道如何在没有它的情况下接近相同的原因,因为我的应用程序没有实现任何FirebaseAdapter,并且我不想再次重做我的所有代码

In FirebaseListAdapter you can use getRef() in order to do this faster, but im wondering how to approach the same without it because my app does not have implemented any FirebaseAdapters , and I dont want to redo all my code again

编辑:

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

This is how I got my adapter

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

谢谢!

推荐答案

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

To solve this, you need to change the following line of code:

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

mRootDatabase = adapter.getRef(position);

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

In which adapter variable is the actual adapter that you are using to display the data.

修改:

您不能使用 getRef()方法,除非您使用的是Firebase-UI库。您无法从 ArrayAdapter 对象中获取 DatabaseReference 对象。此类中的方法均未返回 DatabaseReference 对象。您可以实现此目的的唯一方法是使用 Firebase-UI 库。

You cannot use getRef() method, unless you are using Firebase-UI library. You cannot get the DatabaseReference object from the ArrayAdapter object. None of the methods inside this class return a DatabaseReference object. The only way in which you can achieve this is to use Firebase-UI library.

这篇关于如何使用Firebase结果检索ListView中的位置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆