Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 来自剪贴板的null_Android_Clipboard - Fatal编程技术网

Android 来自剪贴板的null

Android 来自剪贴板的null,android,clipboard,Android,Clipboard,我需要从剪贴板获取复制的数据。我使用以下代码: val clipboardManager = getSystemService(CLIPBOARD_SERVICE) as ClipboardManager val clipData: ClipData? = clipboardManager.primaryClip clipData?.let { textView.text = clipData.getItemAt(0).text } textView.post { val cl

我需要从剪贴板获取复制的数据。我使用以下代码:

val clipboardManager = getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
val clipData: ClipData? = clipboardManager.primaryClip
clipData?.let { textView.text = clipData.getItemAt(0).text }
textView.post {
        val clipboardManager = getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
        val clipData: ClipData? = clipboardManager.primaryClip
        clipData?.let { textView.text = clipData.getItemAt(0).text }
}
如果我在
onCreate()
onResume()
回调中使用此代码,我总是从剪贴板获取空值

但如果我把这个代码称为:

val clipboardManager = getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
val clipData: ClipData? = clipboardManager.primaryClip
clipData?.let { textView.text = clipData.getItemAt(0).text }
textView.post {
        val clipboardManager = getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
        val clipData: ClipData? = clipboardManager.primaryClip
        clipData?.let { textView.text = clipData.getItemAt(0).text }
}
我收到了复制的字符串

所以,我的结论是,剪贴板会等到所有视图都呈现出来


为什么剪贴板需要等待渲染所有视图?或者剪贴板正在等待其他事情发生,因为当您尝试从剪贴板获取
primaryClip
时,应用程序应该处于焦点位置

所有视图都必须设置并绑定到活动,这就是为什么您必须在
view.post{}

API 29中添加的更改可能会有所帮助,目前我无法对其进行测试,但我希望这能有所帮助