首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Android中将文本复制到剪贴板?

如何在Android中将文本复制到剪贴板?
EN

Stack Overflow用户
提问于 2013-10-09 00:55:09
回答 20查看 227.3K关注 0票数 402

有人能告诉我当一个按钮被按下时,如何将特定文本视图中的文本复制到剪贴板上吗?

代码语言:javascript
复制
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.mainpage);
    textView = (TextView) findViewById(R.id.textview);
    copyText = (Button) findViewById(R.id.bCopy);
    copyText.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            
            ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
            String getstring = textView.getText().toString();
            
            // Help to continue :)
        }
    });
}

我想在按下按钮bCopy时将TextView textView中的文本复制到剪贴板。

EN

回答 20

Stack Overflow用户

回答已采纳

发布于 2013-10-09 00:59:23

使用ClipboardManager

代码语言:javascript
复制
 ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); 
 ClipData clip = ClipData.newPlainText(label, text);
 clipboard.setPrimaryClip(clip);

确保导入了android.content.ClipboardManager而不是android.text.ClipboardManager。后者已弃用。有关详细信息,请查看此link

票数 737
EN

Stack Overflow用户

发布于 2015-02-28 18:17:10

下面是将文本复制到剪贴板的方法:

代码语言:javascript
复制
private void setClipboard(Context context, String text) {
  if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.HONEYCOMB) {
    android.text.ClipboardManager clipboard = (android.text.ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
    clipboard.setText(text);
  } else {
    android.content.ClipboardManager clipboard = (android.content.ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
    android.content.ClipData clip = android.content.ClipData.newPlainText("Copied Text", text);
    clipboard.setPrimaryClip(clip);
  }
}

这种方法在所有android设备上都有效。

票数 87
EN

Stack Overflow用户

发布于 2013-12-24 00:07:08

就用这个吧。它只适用于android api >= 11,在此之前,你必须使用ClipData。

代码语言:javascript
复制
ClipboardManager _clipboard = (ClipboardManager) _activity.getSystemService(Context.CLIPBOARD_SERVICE);
_clipboard.setText(YOUR TEXT);

希望对您有所帮助:)

UPDATE 3/19/2015正如Ujjwal Singh所说的那样,setText方法现在已弃用,您应该使用setPrimaryClip(clipData),就像文档中建议的那样。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19253786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档