【问题标题】:Android sending data to class from MainActivityAndroid 从 MainActivity 向类发送数据
【发布时间】:2022-08-24 19:10:27
【问题描述】:

我正在创建一些 Android 应用程序,用户在其中添加他的数据,并且应用程序将使用它。为了工作,我需要将数据从MainActivity.kt 写入SomeClass.kt。我试图用 Intent 来做,但它给了我 null (我猜,如果 Intent 没有得到 startActivity 选项,它不会发送“putExtra”数据。或者可能是我写错了 getIntent,但它会在第二个给出数据活动。所以,问题是:如何将数据从 MainActivity 发送到 SomeClassFile.kt?我的代码:

MainActivity.kt

...
val name = findViewById<EditText>(R.id.editTextTextPersonName)
val sname = findViewById<EditText>(R.id.editTextTextPassword)

val i = Intent(this@MainActivity, DataClass::class.java)
val bundle = Bundle()
            bundle.putString(\"login\", name.toString())
            bundle.putString(\"email\", sname)
            bundle.putString(\"test\", \"hello world\")
            myIntent.putExtra(\"MyPackage\", bundle)

...

数据类.kt

class DataClass {

    val callerIntent = intent // <-- Error is here, \'Unresolved reference: intent\'
    val packageFromCaller = callerIntent.getBundleExtra(\"MyPackage\")
    val contact = packageFromCaller!!.getString(\"login\")
    val email = packageFromCaller!!.getString(\"email\")
    val test = packageFromCaller!!.getString(\"test\")

}

在另一个活动中,使用与DataClass.kt 相同的代码,我得到了我的文本(两个来自 EditText 和 \"Hello world!\")

此外,我可以将我的信息写入 .txt 文件并尝试从该 .txt 文件中获取类中的数据,但是当我尝试在“class”文件中打开它时,出现“未解析的引用”错误:打开文件输入\'\'。

    标签: java android kotlin android-intent


    【解决方案1】:

    您需要活动来获取“意图”的实例,但是由于您使用的是单独的类,因此您可以使用它-

    1. class DataClass(private val activity: WeakReference&lt;Activity&gt;) { val callerIntent get() = activity.get()?.intent }

      制作 DataClass 的对象 -

      val dataClassX = DataClass(WeakReference(this@YOUR_ACTIVITY_CLASS_NAME))
      

      其中“this”是您的活动的引用/或在片段中使用 getActivity()。

    【讨论】:

    • 好的,谢谢,我想这会有所帮助,将在星期五检查
    • 我在 DataClass 中收到错误“未解析的引用:意图”。再次 :(
    • 你能分享你的代码吗
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-24
    • 2016-02-17
    • 2016-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多