How to open a new activity when an item is clicked in Firebase RecyclerView

岁酱吖の 提交于 2019-12-24 11:02:02

问题


I have used FirebaseRecyclerView from Firebase UI to show a list of data. Now when I click on one of the items, depending on the ID of the item in database, I want to open DetailActivity. How can I get Firebase generated ID(eg: -KRAVjAhr6A_spgJZEET) in populateViewHolder.

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
        }
    };

回答1:


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.

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);
        }
    });



回答2:


I have implemented one TouchListener for each Item click, in the onClick callback, depending on the position, you can get the key as shown:

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. FirebaseUI



来源:https://stackoverflow.com/questions/39411408/how-to-open-a-new-activity-when-an-item-is-clicked-in-firebase-recyclerview

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!