如何使用Android显示Firebase数据库中的密钥?

时间:2017-02-06 17:37:01

标签: android firebase firebase-realtime-database listadapter

我有一个简单的Firebase数据库,如下所示:

enter image description here

使用下面的代码,我设法使用ListView将列表aaa,bbb,ddd和zzz显示为FirebaseListAdapter

listDatabaseReference = userDatabaseReference.child("Lists");
firebaseListAdapter = new FirebaseListAdapter<String>(this, String.class, android.R.layout.simple_list_item_1, listDatabaseReference) {
        @Override
        protected void populateView(View v, String string, int position) {
            ((TextView)v.findViewById(android.R.id.text1)).setText(string);
        }
    };
ListView listView = (ListView) findViewById(R.id.list_view);
listView.setAdapter(firebaseListAdapter);

我还添加了setOnItemClickListener,当点击某个项目时,Toast会显示如下:

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
            String string = firebaseListAdapter.getItem(position);
            Toast.makeText(getApplicationContext(), string, Toast.LENGTH_SHORT).show();
        }
    });

使用此代码:String string = firebaseListAdapter.getItem(position);,我获得了List的名称。是否有可能获得相应的密钥而不是获取列表的名称?

让我们说,而不是aaa来获得-Kc571TvSsoiYuMjPZ6d。我真的需要那把钥匙。

提前致谢!

1 个答案:

答案 0 :(得分:0)

在addValueEventlistener中添加以下内容

//创建一个全局字符串的Arraylist说KEYS

{

    for (  DataSnapshot  postSnapshot: snapshot.getChildren()) 
      {
       KEYS.add(postSnapshot.getKey());

      }    

} 现在KEYS将包含所有键