我是Kotlin的新手并且正在研究吸气剂和制定者。我正在创建一个数据类,我在其中设置我的字符串值。我有2个活动,来自ActivityA我正在设置数据,我想在其他ActivityB中获取它。如何从ActivityB中的数据类中获取数据?
我的代码段如下:
数据类HelperMethods:
data class HelperMethods(val name: String, val publisher: String)
ActivityA我在哪里设置数据:
val userName = HelperMethods("abc","efg")
我想从我的ActivityB中的数据类中获取此数据。
答案 0 :(得分:1)
您的数据类应实现Serializable接口,然后将此参数传递给Intent:intent.putExtra("name", yourSerializableObject)
。
然后,在activityB中,您可以使用以下内容获取此数据:intent.getSerializableExtra("name")
。如果你有一些奇怪的流程(比如A - > ... - > B),那么你可以将你的值存储在sharedPreferences中。但是,如果你从A打开B,只需将其作为intentExtra传递。
答案 1 :(得分:0)
选项1:意图
选项2:持久存储DataBase / SharedPrefrence
选项3:使用EventBus / Rx - PublishSubject
选项4:
var commonVariable : HelperMethods? = null
在kotlin的文件级别。
或
class Common{
companion object{
var commonVariable : HelperMethods? = null
}
}
在您的活动1中创建一个实例并将其转让给变量
Common.commonVariable = HelperMethods("abc,efg")
在你的活动2中消耗它。
Log.d("i am consuming here",Common.commonVariable.toString)
您只需要处理VOID MEMORY LEAKS的生命周期