2017-04-06 2 views
-1

J'ai implémenté une vue de la carte recycleur et je souhaite utiliser une méthode par clic pour copier le contenu de cardView. Il y a deux textes dans cardview et je veux copier le contenu seulement, différent pour les différentes cartes. Comment puis-je faire ceci? Voici mon adaptateur Cardview.Copier dans le presse-papiers le contenu d'un cardview

public static class ViewHolder extends RecyclerView.ViewHolder{ 
     Button copyButton; 
     Button shareButton; 


     TextView title; 
     TextView content; 
     public ViewHolder(View itemView) { 
      super(itemView); 
      this.title = (TextView)itemView.findViewById(R.id.card_title); 
      this.content = (TextView)itemView.findViewById(R.id.card_content); 
      this.copyButton= (Button)itemView.findViewById(R.id.copyButton); 
      this.shareButton=(Button)itemView.findViewById(R.id.shareButton); 


     } 
    } 

    @Override 
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycler_item,parent,false); 
     ViewHolder viewHolder = new ViewHolder(view); 
     return viewHolder; 
    } 

    @Override 
    public void onBindViewHolder(ViewHolder holder, int position) { 
     holder.title.setText(cardItems.get(position).title); 
     holder.content.setText(cardItems.get(position).content); 
     holder.copyButton.setOnClickListener(new View.OnClickListener(){ 
      public void onClick(View v){ 


       myClipboard = (ClipboardManager) v.getContext().getSystemService(Context.CLIPBOARD_SERVICE); 


       myClip = ClipData.newPlainText("label", v.content.getText().toString()); 
       myClipboard.setPrimaryClip(myClip); 
       Toast.makeText(v.getContext(), "Copied to clipboard" , Toast.LENGTH_SHORT).show(); 

      } 
     }); 
     holder.shareButton.setOnClickListener(new View.OnClickListener(){ 
      public void onClick(View v){ 
       Intent share = new Intent(Intent.ACTION_SEND); 
       share.setType("text/plain"); 
       share.putExtra(Intent.EXTRA_TEXT, "This message is being sent to another app"); 
       v.getContext().startActivity(Intent.createChooser(share, "Share Text")); 
      } 
     }); 
    } 

v.content.getText() toString()., Le contenu ne peut pas être résolu.

Répondre

0

Essayez le

suivant
1

La variable v est un Button, il pas un texte, vous devez le faire dans votre EditText ou TextView (où vous avez votre texte à copier)

0

Copier le contenu d'un cardview (recyclerview) dans le presse-papier Essayez ce code.

@Override 
protected void populateViewHolder(Attitude.BlogViewHolder viewHolder, Blog model, int position) { 
    viewHolder.setText(model.getText()); 

    final String text = model.getText(); 
    viewHolder.copy.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      myClipboard = (ClipboardManager) v.getContext().getSystemService(Context.CLIPBOARD_SERVICE); 

      myClip = ClipData.newPlainText("label", text); 
      myClipboard.setPrimaryClip(myClip); 
      Toast.makeText(v.getContext(), "Copied to clipboard" , Toast.LENGTH_SHORT).show(); 

     } 
    }); 
} 

public static class BlogViewHolder extends RecyclerView.ViewHolder { 

    View mView; 
    Button copy; 

    public BlogViewHolder(View itemView) { 
     super(itemView); 
     mView = itemView; 
     this.copy= (Button)itemView.findViewById(R.id.copy_btn); 
    } 
} 
0
public static class ViewHolder extends RecyclerView.ViewHolder{ 
     Button copyButton; 
     Button shareButton; 


     TextView title; 
     TextView content; 
     public ViewHolder(View itemView) { 
      super(itemView); 
      this.title = (TextView)itemView.findViewById(R.id.card_title); 
      this.content = (TextView)itemView.findViewById(R.id.card_content); 
      this.copyButton= (Button)itemView.findViewById(R.id.copyButton); 
      this.shareButton=(Button)itemView.findViewById(R.id.shareButton); 


     } 
    } 

    @Override 
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycler_item,parent,false); 
     ViewHolder viewHolder = new ViewHolder(view); 
     return viewHolder; 
    } 

    @Override 
    public void onBindViewHolder(ViewHolder holder, int position) { 
     holder.title.setText(cardItems.get(position).title); 
     holder.content.setText(cardItems.get(position).content); 
     holder.copyButton.setOnClickListener(new View.OnClickListener(){ 
      public void onClick(View v){ 


       myClipboard = (ClipboardManager) v.getContext().getSystemService(Context.CLIPBOARD_SERVICE); 


       myClip = ClipData.newPlainText("label", v.cardItems.get(position).content); 
       myClipboard.setPrimaryClip(myClip); 
       Toast.makeText(v.getContext(), "Copied to clipboard" , Toast.LENGTH_SHORT).show(); 

      } 
     }); 
     holder.shareButton.setOnClickListener(new View.OnClickListener(){ 
      public void onClick(View v){ 
       Intent share = new Intent(Intent.ACTION_SEND); 
       share.setType("text/plain"); 
       share.putExtra(Intent.EXTRA_TEXT, "This message is being sent to another app"); 
       v.getContext().startActivity(Intent.createChooser(share, "Share Text")); 
      } 
     }); 
    } 
+1

S'il vous plaît essayer d'expliquer ce que vous avez fait et pourquoi? – Hima