在RecyclerView中为每个CardView添加复制按钮 [英] Add copy button for Every CardView in RecyclerView
本文介绍了在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屋!
查看全文