繁体   English   中英

如何使用firebase在cardview + recycler视图中点击实现?

[英]How to implement on click in cardview + recycler view with firebase?

我已经实现了一个cardview以及一个从cardview获取数据的recyclerview 我想对用于不同活动的卡片实施onclick方法。 如何为卡片添加点击方法? 这是我的主要活动。

 public class English extends AppCompatActivity   {
    ViewHolder apt;
    RecyclerView mRecyclerView;
    FirebaseDatabase mFirebaseDatabase;
    DatabaseReference mRef;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_english);


        mRecyclerView = findViewById(R.id.recyclerView);
        mRecyclerView.setHasFixedSize(true);
        mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
        mFirebaseDatabase = FirebaseDatabase.getInstance();
        mRef = mFirebaseDatabase.getReference("English");


    }

    private void firebaseSearch(String searchText){
        Query firebaseSearchQuery=mRef.orderByChild("artist").startAt(searchText).endAt(searchText + "\uf8ff");

        FirebaseRecyclerAdapter<englishacti, ViewHolder> firebaseRecyclerAdapter=new FirebaseRecyclerAdapter<englishacti, ViewHolder>(englishacti.class,R.layout.row,ViewHolder.class,firebaseSearchQuery) {
            @Override
            protected void populateViewHolder(ViewHolder holder, englishacti model, int position) {
                holder.setDetails(getApplicationContext(),model.getAlbum(),model.getDescription(),model.getImage(),model.getArtist());
            }
        };
        mRecyclerView.setAdapter(firebaseRecyclerAdapter);
    }

    @Override
    protected void onStart() {
        super.onStart();
        FirebaseRecyclerAdapter<englishacti,ViewHolder> firebaseRecyclerAdapter;
        firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<englishacti, ViewHolder>(englishacti.class,R.layout.row,ViewHolder.class,mRef) {
            @Override

            protected void populateViewHolder(ViewHolder viewHolder, englishacti model, int position) {
                viewHolder.setDetails(getApplicationContext(), model.getAlbum(), model.getDescription(), model.getImage(), model.getArtist());



            }
        };
        mRecyclerView.setAdapter(firebaseRecyclerAdapter);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu,menu);
        MenuItem item = menu.findItem(R.id.action_search);
        SearchView searchView = (SearchView) MenuItemCompat.getActionView(item);
        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String query) {
                firebaseSearch(query);
                return false;
            }

            @Override
            public boolean onQueryTextChange(String newText) {
                firebaseSearch(newText);
                return false;
            }
        });
        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id=item.getItemId();
        if (id==R.id.action_settings){
            return true;
        }
        return super.onOptionsItemSelected(item);
    }




}

请看一下我的片段代码,在我的情况下,我使用这种方式在 recycleview 项目中实现 setonlclick 并将值发送到其他活动

holder.setName(userName);
                    holder.setUserImage(userThumb, getContext());

                    holder.mView.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View view) {
                            Intent chatIntent = new Intent(getContext(), Tampung_chatActivity.class);
                            chatIntent.putExtra("user_id", list_user_id);
                            chatIntent.putExtra("user_name", userName);
                            startActivity(chatIntent);
                        }
                    });

您可以在这里看到完整的代码: 完整的代码片段使用 recycleview 和 firebase 实现 onclick

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM