android实现复制粘贴一项文本功能

转自:
http://blog.csdn.net/uniquemei/article/details/52824000
http://www.cnblogs.com/mengdd/p/3572316.html
方法一:
1.复制字符串到剪贴板管理器

String text = "abcdefg";

ClipboardManager cmb = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE); 

cmb.setText(text );

在TextView中的用法就是(长按复制)

textview.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
   ClipboardManager cmb = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);
   cmb.setText(textview.getText());
   ToastUtil.show("已复制");
   return false;
   }
     });

2.由剪贴板管理器得到内容

ClipboardManager cmb = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE); 

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

方法二:
对于TextView还存在第二种方法,使用setTextIsSelectable()方法,或者在布局文件中设置TextView属性android:textIsSelectable=”true”

TextView tv = new TextView(context);
tv.setTextIsSelectable(true);

代码中直接对TextView使用setTextIsSelectable()方法,将TextView设置成可点按选择的即可。或者在布局文件中设置EditView属性

android:textIsSelectable="true"

3.Androidstudio提示
这里写图片描述
@deprecated Use {@link #setPrimaryClip(ClipData)} instead
要求将setText()用setPrimaryClip(ClipData)来代替

复制方法:

ClipboardManager clipboard = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE); 
// 创建一个剪贴数据集,包含一个普通文本数据条目(需要复制的数据) 
ClipData clipData = ClipData.newPlainText(null,text);
 // 把数据集设置(复制)到剪贴板
 clipboard.setPrimaryClip(clipData);

粘贴方法:

ClipboardManager mClipboard = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);

String resultString = "";
        // 检查剪贴板是否有内容
if (!mClipboard.hasPrimaryClip()) {
    Toast.makeText(HelloClipboardMainActivity.this,
    "Clipboard is empty", Toast.LENGTH_SHORT).show();
        }
else {
      ClipData clipData = mClipboard.getPrimaryClip();
      int count = clipData.getItemCount();
      for (int i = 0; i < count; ++i) {
      ClipData.Item item = clipData.getItemAt(i);
      CharSequence str = item.coerceToText(HelloClipboardMainActivity.this);
                Log.i("mengdd", "item : " + i + ": " + str);
                resultString += str;
            }
        }
        mResultTextView.setText(resultString);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值