2017-04-06 71 views
-1

我已经实现了回收卡片视图并希望使用按钮单击方法来复制cardView的内容。 Cardview中有两个文本,我只想复制内容,对于不同的卡片不同。我怎样才能做到这一点? 这是我的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(),内容无法解析。

回答

0

请尝试以下

1

变量v是Button,它没有文本,你必须做你的EditTextTextView(其中有您的文本复制)

0

将cardview的内容复制到剪贴板(recyclerview) 试试此代码。

@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

请尽量说明你做了什么,为什么? – Hima