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

459
有人可以告诉我怎样在按下按钮时将特定TextView中的文本复制到剪贴板吗?
@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中的文本复制到剪贴板。

2
可能是重复的问题:如何在我的Android应用程序中以编程方式复制文本? - Shabbir Dhangot
https://stackoverflow.com/q/48791271/9274175 请将答案复制 - Yash Kale
32个回答

0
在Kotlin中的安全转换(as?)方法:
(context.getSystemService(CLIPBOARD_SERVICE) as? ClipboardManager)?.let {
  val clipData = ClipData.newPlainText("Google", "https://google.com")
  it.setPrimaryClip(clipData)
}

-2

只需编写以下代码:

clipboard.setText(getstring);

你忘记初始化“clipboard”了。但感谢您使用“setText”。它已经被弃用了,所以请使用val clip = ClipData.newPlainText(null,text)clipboard.setPrimaryClip(clip) - CoolMind
你需要先获取剪贴板对象。 - Bita Mirshafiee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接