为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Android应用中以编程方式复制文本?

如何在Android应用中以编程方式复制文本?

森栏 2019-11-25 10:30:24
我正在构建一个Android应用程序,并且想要复制EditText小部件的文本值。用户可以按Menu+A然后Menu+C复制该值,但是我将如何以编程方式执行此操作?
查看完整描述

3 回答

?
12345678_0001

TA贡献1802条经验 获得超5个赞

使用ClipboardManager#setPrimaryClip方法:


import android.content.ClipboardManager;


// ...


ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); 

ClipData clip = ClipData.newPlainText("label", "Text to copy");

clipboard.setPrimaryClip(clip);

ClipboardManager API参考


查看完整回答
反对 回复 2019-11-25
?
四季花海

TA贡献1811条经验 获得超5个赞

因此,每个人都同意应如何完成此工作,但是由于没人愿意提供完整的解决方案,因此请按以下步骤进行:


int sdk = android.os.Build.VERSION.SDK_INT;

if(sdk < android.os.Build.VERSION_CODES.HONEYCOMB) {

    android.text.ClipboardManager clipboard = (android.text.ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);

    clipboard.setText("text to clip");

} else {

    android.content.ClipboardManager clipboard = (android.content.ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); 

    android.content.ClipData clip = android.content.ClipData.newPlainText("text label","text to clip");

    clipboard.setPrimaryClip(clip);

}

我假设您在清单中声明了以下内容:


<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="14" />


查看完整回答
反对 回复 2019-11-25
?
MYYA

TA贡献1868条经验 获得超4个赞

Googling将您带到android.content.ClipboardManager,您可以像我所做的那样确定剪贴板在API <11上不可用,因为文档页面上显示“ Since:API Level 11”。


实际上有两个类,第二个扩展了第一个类-android.text.ClipboardManager和android.content.ClipboardManager。


android.text.ClipboardManager自API 1起就存在,但仅适用于文本内容。


android.content.ClipboardManager是使用剪贴板的首选方法,但在API级别<11(Honeycomb)上不可用。


要获取它们中的任何一个,您需要以下代码:


ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);

但是对于API <11,您必须导入android.text.ClipboardManager,对于API> = 11 android.content.ClipboardManager


查看完整回答
反对 回复 2019-11-25
  • 3 回答
  • 0 关注
  • 488 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信