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

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

但它永远都行不通。这可能是个错误? ps。我知道要复制什么文本,因为可以长按粘贴,但是我想自动进行粘贴。是否可以为复制的文本指定特定的名称?因为我有很多不同的TextView,这将使粘贴单词更加容易

最佳答案


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.Item在文本中添加其他ClipData.addItem()项,但无法识别它们。

07-28 03:14