java - 在 Android 中从剪贴板粘贴

标签 java android clipboard

我写了一段代码,将计算器中的答案复制到剪贴板,然后关闭计算器并打开另一个窗口。应使用代码将答案粘贴到此处:

    textOut2= (TextView) findViewById(R.id.etInput1);
    final ClipboardManager clipBoard= (ClipboardManager)getSystemService(CLIPBOARD_SERVICE);
    textOut2.setText(clipBoard.getText());

但它永远行不通。哪里可能出错?附:我知道复制了什么文本,因为我可以使用长按进行粘贴,但我想自动执行。是否可以为复制的文本指定一个特定的名称?因为我有很多不同的 TextView,所以粘贴单词会更容易

最佳答案

public CharSequence getText () Since: API Level 11 This method is deprecated. Use getPrimaryClip() instead. This retrieves the primary clip and tries to coerce it to a string.

String textToPaste = null;

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

if (clipboard.hasPrimaryClip()) {
    ClipData clip = clipboard.getPrimaryClip();

    // if you need text data only, use:
    if (clip.getDescription().hasMimeType(MIMETYPE_TEXT_PLAIN))
        // WARNING: The item could cantain URI that points to the text data.
        // In this case the getText() returns null and this code fails!
        textToPaste = clip.getItemAt(0).getText().toString();

    // or you may coerce the data to the text representation:
    textToPaste = clip.getItemAt(0).coerceToText(this).toString();
}

if (!TextUtils.isEmpty(textToPaste))
     ((TextView)findViewById(R.id.etInput1)).setText(textToPaste);

您可以通过 ClipData.addItem() 添加带有文本的额外 ClipData.Item 项目,但无法识别它们。

关于java - 在 Android 中从剪贴板粘贴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8617404/

相关文章:

java - 重新安装 Eclipse 后无法再构建项目

android - 无法在Android MVVM中创建ViewModel类的实例

android - 尝试打开对话框时出错 : android. view.WindowManager$BadTokenException

javascript - 从 postman 中的剪贴板复制数据

Java - 带计时器的用户输入线程

java - 尝试使用 ArrayList<Integer> 创建冒泡排序时出现问题

java - Android 手机上的套接字连接超时

excel - 将 Excel 范围作为图片复制到剪贴板

c# - 使用 Clipboard.SetData() 放入剪贴板的内容的第一个字节和最后一个字节是什么意思?

java - 如何从命令行将 Groovy 脚本作为 Java 运行?