android - Kotlin Android - 从 fragment 复制到剪贴板

标签 android android-fragments kotlin clipboard

我需要将文本复制到剪贴板,所以我使用了我已经在 MainActivity 中使用的代码:

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

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

getSystemService :

Type inference failed: fun getSystemService(p0: Context, p1: Class): T? cannot be applied to (String)



CLIPBOARD_SERVICE :

Type mismatch: inferred type is String but Context was expected



我试过了
getSystemService(context!!, CLIPBOARD_SERVICE)
但不起作用

最佳答案

当你的类是一个 fragment 时,你可以通过调用 getActivity() 来获得对其父 Activity 的引用。在 Java 中或只是 activity在 Kotlin 。

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

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

关于android - Kotlin Android - 从 fragment 复制到剪贴板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57646508/

相关文章:

java - 你如何让 Mockito 与 Kotlin 不可为空的类型配合得很好?

android - 删除 Android 工具栏抽屉导航选项

android - 在 Android 中保存 MapFragment (Maps v2) 状态

java - rxjava 2 : how to dispose a resource after downstream completes processing

android - Jetpack 撰写 : Modify Room data class using TextField

java - 如何将 HashMap 放入 JSONObject?

java - 当我从 firebase 数据库以各自的角色登录时,我想打开三个不同的 Activity

android - 如何使用带有底部导航 View 的全屏 fragment ?

Android Fragment 返回不起作用,setDisplayHomeAsUpEnabled(true)setHomeButtonEnabled(true);

Kotlin 编译器显示编译错误并建议 "change type from ' T' 到 'T"' 而上下文中只有一个 T