在RecyclerView中为每个CardView添加复制按钮 [英] Add copy button for Every CardView in RecyclerView

查看:108
本文介绍了在RecyclerView中为每个CardView添加复制按钮的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何实施Coppy按钮 我想为RecyclerView中的每张卡都提供一个复制按钮.单击该按钮时,将复制一个TextView,但是我感到困惑的是将OnClick放在何处或如何获取字符串.

How to Implement Coppy Button I want a copy button for every card in a RecyclerView. When the button is clicked a TextView will be copied, but I'm getting confused where to put the OnClick or how to get a string.

import android.content.ClipData;
import android.content.ClipboardManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.ImageButton;
import android.widget.TextView;

import com.firebase.ui.database.FirebaseRecyclerAdapter;
import com.google.firebase.FirebaseApp;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;

public class SadStatus extends AppCompatActivity {
    private View frag1View;

    private RecyclerView recyclerView;
    private DatabaseReference myref;

    private ClipboardManager clipboardManager;
    private ClipData clipData;

    String text;

    ImageButton imageButton, imageButton2;

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


        FirebaseApp.initializeApp(this);

        recyclerView = (RecyclerView) findViewById(R.id.recyclerview);
        recyclerView.setHasFixedSize(true);

        myref = FirebaseDatabase.getInstance().getReference().child("SadStatus");

        recyclerView.setLayoutManager(new LinearLayoutManager(this));

        clipboardManager = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);

        imageButton = (ImageButton) findViewById(R.id.shareButton);
        imageButton2 = (ImageButton) findViewById(R.id.coppyButton);
    }


    @Override
    public void onStart() {
        super.onStart();
        FirebaseRecyclerAdapter<Blog, AttitudeActivity.BlogViewHolder> recyclerAdapter = new FirebaseRecyclerAdapter<Blog, AttitudeActivity.BlogViewHolder>(
                Blog.class,
                R.layout.individual_row,
                AttitudeActivity.BlogViewHolder.class,
                myref
        ) {
            @Override

            //populateViewHolder metod sets all Element which Our Main Componets Contain.

            protected void populateViewHolder(AttitudeActivity.BlogViewHolder viewHolder, Blog model, int position) {

                //it gets tittle frm model class and setting it to the viewHolder, same as below
                viewHolder.setTitle(model.getTitle());




            }
        };

        //here Adapter is Setting the recyclerView
        recyclerView.setAdapter(recyclerAdapter);
    }

    //this Is the BlogViewHolder
    public static class BlogViewHolder extends RecyclerView.ViewHolder {

        View mView;
        //here Reference to all the Elements it Contain

        String text;

        private ClipboardManager clipboardManager;
        private ClipData clipData;

        TextView textView_title;
        ImageButton imageButton, imageButton2;

        public BlogViewHolder(final View itemView) {

            super(itemView);

            mView = itemView;

            textView_title = (TextView) itemView.findViewById(R.id.title);
            imageButton = (ImageButton) itemView.findViewById(R.id.shareButton);
            imageButton2 = (ImageButton) itemView.findViewById(R.id.coppyButton);

            textView_title.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    String text = textView_title.getText().toString().trim();

                    clipData = ClipData.newPlainText("text",text);
                    clipboardManager.setPrimaryClip(clipData);
                }
            });


        }


        public void setTitle(String title) {
            textView_title.setText(title);


        }
    }
}

推荐答案

您可以在populateViewHolder方法内添加TextView的onClick侦听器.

You can add the onClick listener for the TextView inside the populateViewHolder method.

protected void populateViewHolder(//your arguments) {

   viewHolder.textView_title.setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View v) {
         //your code
           }
        });
   }

这篇关于在RecyclerView中为每个CardView添加复制按钮的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆