无法在 ClipboardManager primaryClip 重新分配 Val

Posted

技术标签:

【中文标题】无法在 ClipboardManager primaryClip 重新分配 Val【英文标题】:Val can not be reassigned at ClipboardManager primaryClip 【发布时间】:2020-08-05 03:43:46 【问题描述】:

我知道这个question is already been asked,但它仍然不能帮助我解决问题

我在将数据复制到剪贴板管理器时遇到问题

下面是代码

fun copyToClipboard(context: Context, text: CharSequence)
        var clipboard: ClipboardManager = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
        var clip: ClipData = ClipData.newPlainText("label",text)
        clipboard.primaryClip = clip!!
    

正如@ianhanniballake 建议的那样,我已经将 setPrimaryClip() 与非空 ClipData 一起使用

如下图

var clip: ClipData = ClipData.newPlainText("label",text)
clipboard.primaryClip = clip!!

但不知道为什么,我仍然遇到类似的错误

Val cannot be reassigned

【问题讨论】:

在你的“喜欢下面”中你没有使用setPrimaryClip()。请修正你的例子。 也不要使用!!,它会抛出NPE。如果你喜欢在脚上射击自己,你可以使用它;) 【参考方案1】:

你必须使用方法setPrimaryClip(),例如:

clipboard?.setPrimaryClip(clip)

因为字段 primaryClip 只有 getter。

【讨论】:

当我强制我的应用程序的最低 SDK 为 29 时更新了 API。这帮助我解决了问题。

以上是关于无法在 ClipboardManager primaryClip 重新分配 Val的主要内容,如果未能解决你的问题,请参考以下文章

ClipBoardManager.OnPrimaryClipChangedListener 不工作

为啥 Xamarin ClipboardManager 不包含仅纯文本的 html?

ClipboardManager 抛出以下错误:Can't create handler inside thread that has not called Looper.prepare() usin

使用ClipboardManager碰到Can't create handler inside thread that has not called Looper.prepare()(

无法在java android中获取剪贴板数据

kotlin实现复制内容到系统剪切板