首页 > 解决方案 > 如何在一个片段中收集数据并将其显示在 android studio 的另一个片段中,我正在使用共享首选项来执行此操作

问题描述

这是我在一个片段中创建的用于存储我的价值的功能,

  private fun nickdata(){
    

    val sharedPreferences = getSharedPreferences("sharedPrefs", Context.MODE_PRIVATE)
    val nicdat = binding.nickname.text.toString()
    val editor = sharedPreferences.edit()
    
    editor.putString("Nickname_key","trial")
    editor.apply()
    editor.commit()}

下面是我用来在另一个片段中获取数据的代码

    val pref = activity!!.getPreferences(Context.MODE_PRIVATE)
    val id = pref.getString("Nickname_Key", "trial")
    binding.nickdata.text = id

在输出中,我得到的是 def 值的“试用”。

标签: androidandroid-studiokotlinandroid-fragments

解决方案


确保您在两个片段中使用相同的共享首选项。

此外,您所做的是您存储了价值试用而不是您想要发送另一个片段的价值。

val sharedPreferences = activity!!.getSharedPreferences("sharedPrefs", Context.MODE_PRIVATE)
val nicdat = binding.nickname.text.toString()
val editor = sharedPreferences.edit()

editor.putString("Nickname_key",nicdat)
editor.apply()
editor.commit()

对于另一个片段

val pref = activity!!.getSharedPreferences("sharedPrefs", Context.MODE_PRIVATE)
val id = pref.getString("Nickname_Key", "trial")
binding.nickdata.text = id

推荐阅读