从FirebaseListAdapter中的onItemClick中检索Firebase密钥



我有一个Firebase DB,我使用push()方法将条目添加到DB,从而生成随机密钥作为每个条目的引用。

在应用程序的一部分中,我使用FirebaseListAdapter将一些DB条目填充到列表视图中。然后我在我的清单上执行setOnItemClickListener。这里我想做的是返回我点击的每个条目的引用。

    //Firebase DB setup
    mDatabaseStolen =       FirebaseDatabase.getInstance().getReference().child(testing);
    myListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            DatabaseReference itemRef = mDatabaseStolen.getRef();
            Toast toast = Toast.makeText(getActivity().getApplicationContext(), itemRef.getKey(), Toast.LENGTH_SHORT);
            toast.show();
        }
    });

此处处理Push:

 mDatabase.child("testing").push().setValue(newBike);

重火力点数据:

"testing" : {  
 "-KTA7xijNrK1SK98rZns" : {     
  "color" : "Rjfu",      
  "frameSize" : 0,         
  "make" : "Ggg",     
  "other" : "Xhfhf",     
  "stolen" : false
},
"-KTABiJuH2-RXwmp0Rcu" : {   
"color" : "Red",     
"frameSize" : 0,      
"make" : "Test ",      
"other" : "No",      
"stolen" : false
}

因此,当我单击列表中的项目时,我希望返回参考KTA7xijNrK1SK98rZns或任何它可能是。在第一个代码片段的toast中,我返回的只是每次单击父引用中的testing字符串。

感谢您的帮助。

你说你有一个FirebaseListAdapter。如果是这种情况,您可以在adapter.getRef()的位置获得对特定项的引用。

myListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
        DatabaseReference itemRef = adapter.getRef(position);
        Toast toast = Toast.makeText(getActivity().getApplicationContext(), itemRef.getKey(), Toast.LENGTH_SHORT);
        toast.show();
    }
});

相关内容

  • 没有找到相关文章

最新更新