我正在java中的一个android项目上工作,我需要在一个活动中复制粘贴一些数据,但这里的问题是我能够设置主剪辑,但当我尝试访问primaryClip时,它返回false。我使用以下代码
设置Primary剪辑ClipboardManager clipboard = (ClipboardManager) requireContext().getSystemService(Context.CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText("textData","12345");
clipboard.setPrimaryClip(clip);
我试图像这样访问
ClipboardManager clipboard = (ClipboardManager) getApplicationContext().getSystemService(Context.CLIPBOARD_SERVICE);
if (clipboard.hasPrimaryClip()) {
//This returning false
}
这里hasPrimaryClip()
返回false,但是如果我打开任何文本编辑器应用程序并尝试粘贴它们,它将粘贴我设置为主要剪辑的数据。
如何解决这个错误?
尝试在剪切数据100毫秒后调用clipboard.hasPrimaryClip(),应该可以工作。
val clipboard = getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
val clip = ClipData.newPlainText("label", "whatever")
clipboard.setPrimaryClip(clip)
Log.d(TAG, clipboard.primaryClip?.getItemAt(0).toString())
为空但是:
val clipboard = getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
val clip = ClipData.newPlainText("label", "whatever")
clipboard.setPrimaryClip(clip)
Handler().postDelayed({
Log.d(TAG, clipboard.primaryClip?.getItemAt(0).toString())
},100)
打印"whatever".
正如官方文档所说,如果应用程序不是默认的IME,则返回false。https://developer.android.com/reference/android/content/ClipboardManager hasPrimaryClip ()