简体   繁体   English

在Firebase RecyclerView中单击项目时如何打开新活动

[英]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.

相关问题 在Firebase RecyclerView Cardview中单击项目时如何打开详细信息活动 - How to open a details activity when an item is clicked in Firebase RecyclerView Cardview 如何在传递单击的自定义列表项的数据时单击带有RecyclerView的片段项时打开新活动? - How to open a new activity when an item of a fragment with RecyclerView is clicked while passing the data of the clicked custom list item? 如何根据RecyclerView中的单击项在新活动中打开特定片段 - How to open specific Fragment in new Activity depending on clicked item in RecyclerView 如何根据单击的recyclerview项目打开新活动? - How to open a new activity depending on the recyclerview item clicked? 单击项目时在新活动中打开 webview - open webview in new activity when item is clicked 如何使用 firebase 数据库在 recyclerview 中打开新活动 - How to open new activity in recyclerview with firebase database 如何将数据从recyclerview中的单击项传递到ViewModel并打开新活动? - How to pass data from clicked item in recyclerview to viewmodel and open new activity? 单击项目时将数据从 recyclerView 传递到新活动 Kotlin - Pass data from recyclerView to new activity when an item is clicked Kotlin 当我点击一个recyclerview项目时,如何从一个片段移动到一个新的活动? - how to move from a fragment to a new activity when i clicked an item of recyclerview? 单击按钮时如何打开新活动? - How to open a new activity when a button is clicked?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM