当前位置: 首页 > 知识库问答 >
问题:

静态编程语言Android-复制到剪贴板从碎片

秦彦君
2023-03-14

我需要复制一个文本到剪贴板,所以我使用了一个代码,我已经使用了在主活动:

 val myClipboard: ClipboardManager = getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
 val myClip: ClipData

问题是,这段代码在活动上运行良好,但(显然)在片段上运行不好。

getSystemService上:

类型推断失败:趣味getSystemService(p0: Context, p1: Class): T?不能应用于(字符串)

CLIPBOARD_SERVICE上:

类型不匹配:推断的类型是String,但需要上下文

我试过了

getSystemService(上下文!!,CLIPBOARD_SERVICE)

但不起作用

共有3个答案

糜宜民
2023-03-14

在android x中,getSystemService()的构造函数发生了变化。。现在你必须像这样调用剪贴板(你可以使用活动!!上下文!!

var myClipboard = getSystemService(context!!, ClipboardManager::class.java) as ClipboardManager
val clip: ClipData = ClipData.newPlainText("simple text", text)

myClipboard.setPrimaryClip(clip)
胡元明
2023-03-14

使用强制展开不是一个好主意(!!)论柯特林的语境。在您的片段类中,您可以使用下面的代码,这对于任何NPE都是安全的,而且非常干净。

(requireActivity().getSystemService(CLIPBOARD_SERVICE) as ClipboardManager).apply {
        setPrimaryClip(ClipData.newPlainText("simple text", "some other text"))
    }

快乐编码!

颛孙庆
2023-03-14

当您的类是一个片段时,您可以通过在Java中调用getActivity()或在Kotlin中调用Activity来获取对其父活动的引用。

使用这种方法,您可以将活动中的代码更改为

val myClipboard: ClipboardManager = activity.getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
val myClip: ClipData
 类似资料:
  • 问题是,从vim到剪贴板的复制/粘贴停止工作。我不知道为什么。。。 在中,我也没有看到和缓冲区... 这是我的。vimrc,如果需要的话。 有什么建议吗? 谢谢

  • 问题内容: 如何将BufferedImage存储到系统剪贴板中? 问题答案: 这是从这里获得的工作代码,已成功测试

  • 将一个字符串复制到剪贴板。 仅作为用户操作的结果(即,在 click 事件侦听器中)。 创建一个新的 <textarea> 元素,用提供的数据填充它,并将其添加到 HTML 文档中。 使用 Selection.getRangeAt() 来存储选择的范围(如果有的话)。 使用 document.execCommand('copy') 复制到剪贴板。 从HTML文档中删除 <textarea> 元素。

  • 问题内容: 首先,关于SO将图像复制到python中的剪贴板的问题导致答案用PIL和win32clipboard将图像写入python中的Windows剪贴板?,这仅对Python 2.x有用。-我尝试过,但是没有用。我克服了一个问题:Python 3.0中没有StringIO和cStringIO模块 ,但是碰到了另一个: 因此,对于Python 3再次提出相同的问题-如何在Python 3中将图

  • 我想在Android API上测试剪贴板,所以我开始使用Android的ClipboardManager和ClipData类创建一个简单的应用程序。我遵循了Android网站上的“复制和粘贴”指南,尽管我必须填写几个地方,因为该指南没有每行必要的代码(但我最终不得不注释掉Intent和URI粘贴方法,因为它没有给出具体的示例,因为我假设数据是多种多样的)。我运行了应用程序,但由于某种原因,我发送的

  • 嘿,我正在尝试将文本从回收器视图项目复制到剪贴板中,当我尝试在活动中执行此操作时,它的工作原理,但当我尝试查看者中的代码时,我得到了未解决的参考:CLIPBOARD_SERVICE错误这里是代码: