我写了一段代码,将计算器中的答案复制到剪贴板,然后关闭计算器,然后打开另一个窗口。答案应使用代码粘贴在此处:
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()
项,但无法识别它们。