我正在构建一个Android应用程序,我想复制EditText小部件的文本值。这是可能的用户按菜单+A然后菜单+C复制的值,但我如何通过编程做到这一点?
当前回答
google带你到android.content.ClipboardManager,你可以决定,就像我做的那样,Clipboard在API < 11上是不可用的,因为文档页面说“Since: API Level 11”。
实际上有两个类,第二个类扩展了第一个类——android.text.ClipboardManager和android.content.ClipboardManager。
android.text.ClipboardManager从API 1开始就存在了,但它只适用于文本内容。
android.content.ClipboardManager是使用剪贴板的首选方式,但它在API级别< 11(蜂窝)上不可用。
要获得其中任何一个,你需要以下代码:
ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
但对于API < 11,你必须导入android.text.ClipboardManager和API >= 11 android.content.ClipboardManager
其他回答
使用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引用
对于Kotlin,在活动中使用下面的代码。
import android.content.ClipboardManager
val clipBoard = getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
val clipData = ClipData.newPlainText("label","Message to be Copied")
clipBoard.setPrimaryClip(clipData)
public void onClick (View v)
{
switch (v.getId())
{
case R.id.ButtonCopy:
copyToClipBoard();
break;
case R.id.ButtonPaste:
pasteFromClipBoard();
break;
default:
Log.d(TAG, "OnClick: Unknown View Received!");
break;
}
}
// Copy EditCopy text to the ClipBoard
private void copyToClipBoard()
{
ClipboardManager clipMan = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
clipMan.setPrimaryClip(editCopy.getText());
}
你可以试试这个。
除非你的应用程序是默认的输入法编辑器(IME)或者是当前有焦点的应用程序,否则你的应用程序不能在Android 10或更高版本上访问剪贴板数据。 https://developer.android.com/about/versions/10/privacy/changes#clipboard-data
@FlySwat已经给出了正确答案,我只是分享完整的答案:
使用ClipboardManager。setPrimaryClip (http://developer.android.com/reference/android/content/ClipboardManager.html)方法:
ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText("label", "Text to copy");
clipboard.setPrimaryClip(clip);
标签是一个用户可见标签的剪辑数据和 文本是剪辑中的实际文本。根据官方文件。
使用这个导入是很重要的:
import android.content.ClipboardManager;
推荐文章
- apk (.apk)和应用程序包(.aab)的区别
- 如何设置超时在改造库?
- Android - SPAN_EXCLUSIVE_EXCLUSIVE跨度不能为零长度
- TextView的字体大小在Android应用程序改变字体大小从本机设置
- 如何模拟Android杀死我的进程
- 禁用EditText闪烁光标
- Android Eclipse -无法找到*.apk
- 设置TextView文本从html格式的字符串资源在XML
- 如何允许所有网络连接类型HTTP和HTTPS在Android(9)馅饼?
- Android加载JS包失败
- Android Studio, logcat在应用程序关闭后清理
- 在android中从上下文获取活动
- 无法解析主机"<URL here>"没有与主机名关联的地址
- getActivity()在Fragment函数中返回null
- 按钮背景是透明的