android - 如何在 Android Studio 中添加带有函数的单独文件
问题描述
我想要一个文件,其中包含一些可以添加到我的项目中的功能。所以我可以添加该文件,然后再次使用相同的东西。
我创建了一个新文件,添加了一个简单的函数并尝试在我的 MainActivity 中运行它。Mainactivity 可以“看到”我的函数,但是一旦函数运行,应用程序就会崩溃。是否可以像这样制作一个单独的文件并可以访问所有功能,就好像它们在我的 MainActivity 中一样?
只是为了测试我这样做:
MainActivity.kt
mToast("Its working", 0, 500)
有趣的.tk
package com.myname.app
import android.view.Gravity
import android.widget.Toast
fun mToast(t: String, x: Int, y: Int) {
val toast = Toast.makeText(MainActivity().applicationContext, t, Toast.LENGTH_SHORT)
toast.setGravity(Gravity.BOTTOM, x, y)
toast.show()
}
解决方案
您不应MainActivity
在辅助函数中创建新实例。相反,将上下文作为参数传递:
fun mToast(context: Context, t: String, x: Int, y: Int) {
val toast = Toast.makeText(context, t, Toast.LENGTH_SHORT)
toast.setGravity(Gravity.BOTTOM, x, y)
toast.show()
}
推荐阅读
- python - 如何从嵌套列表中提取所有子列表?
- jms - 在 ActiveMQ Artemis 上的主题上负载平衡消费者
- javascript - 如何在反应中输出字符串状态值?
- python - 朴素贝叶斯、文本分析、SKLearn
- flutter - Flutter - 用户注册时生成的二维码并链接到他们的个人资料
- python - 如何使用 Numpy 对字符串数组进行一次热编码?
- json - 当它们应该是值时返回为 0 的 JSON 整数
- node.js - 比较 2 个嵌入文档的特定字段后获取过滤后的文档
- r - ggplot:将x轴与不同的几何对齐(ggarrange)
- c++ - 试图在重载函数中输入字符和字符串