[英]How to open a new activity when an item is clicked in Firebase RecyclerView
I have used FirebaseRecyclerView from Firebase UI to show a list of data. 我已经从Firebase UI使用FirebaseRecyclerView来显示数据列表。 Now when I click on one of the items, depending on the ID of the item in database, I want to open DetailActivity. 现在,当我单击其中一项时,根据数据库中该项的ID,我想打开DetailActivity。 How can I get Firebase generated ID(eg: -KRAVjAhr6A_spgJZEET) in populateViewHolder . 我如何在populateViewHolder中获取Firebase生成的ID(例如:-KRAVjAhr6A_spgJZEET) 。
Query queryRef = mDatabase.child("user-tickets").child(userId);
FirebaseRecyclerAdapter<Ticket, TicketViewHolder> adapter = new FirebaseRecyclerAdapter<Ticket, TicketViewHolder>(
Ticket.class,
R.layout.item_ticket,
TicketViewHolder.class,
queryRef
) {
@Override
protected void populateViewHolder(TicketViewHolder viewHolder, Ticket model, int position) {
//want to get Id here for this record
}
};
you must put your data in a ArrayList then on your populateView attche onClickListener on your view and pass the id that is clicked using a Bundle, remember you have set your view to clickable="true" on your xml if its not a button. 您必须将数据放在ArrayList中,然后在视图上的populateView attche onClickListener上传递,并传递使用Bundle单击的ID,请记住,如果您的xml不是按钮,则将视图设置为clickable =“ true”。
viewHolder.container.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Bundle bundle = new Bundle();
bundle.putString("ID_KEY", items.get(position).getId());
Intent intent = new Intent(context.getApplicationContext(), DetailActivity.class);
intent.putExtra("EXTRAS_KEY", bundle);
context.startActivity(intent);
}
});
I have implemented one TouchListener for each Item click, in the onClick callback, depending on the position, you can get the key as shown: 我为每个Item单击实现了一个TouchListener,在onClick回调中,根据位置,您可以得到如下所示的键:
mRecyclerView.addOnItemTouchListener(new RecyclerTouchListener(this, mRecyclerView, new RecyclerClickListener() {
@Override
public void onClick(View view, int position) {
String key = adapter.getRef(position).getKey();
}
@Override
public void onLongClick(View view, int position) {
}
}));
Credit: How to get obj key from FirebaseListAdapter on Item Click. 信誉: 如何在Item Click上从FirebaseListAdapter获取obj密钥。 FirebaseUI FirebaseUI
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.