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