preferencia compartida en actividad y fragmento
Estoy recuperando los datos en un fragmento desde la actividad a través de las preferencias compartidas, pero no puedo realizar esa tarea.
class ProfileFragment : Fragment() {
lateinit var sharedPreference: SharedPreferences
lateinit var txtName:TextView
lateinit var txtEmail:TextView
lateinit var txtMobileNo:TextView
lateinit var txtAddress:TextView
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflar el diseño para este fragmento
val view = inflater.inflate(R.layout.fragment_profile, container, false)
sharedPreference = this.requireActivity().getSharedPreferences(getString(R.string.preference_file_name), Context .MODE_PRIVATE)
txtName = view.findViewById(R.id.title)
txtEmail = view.findViewById(R.id.Semail)
txtMobileNo = view.findViewById(R.id.Smobile)
txtAddress = view.findViewById(R.id.Sadress)
txtName.setText(sharedPreference.getString("title", "default")).toString()
txtEmail.setText(sharedPreference.getString("Email", "default")).toString()
txtMobileNo.setText(sharedPreference.getString("Mobile", "default")).toString()
txtAddress.setText(sharedPreference.getString("delivery", "default")).toString()
return view
}
}
davy.ai
Parece que hay un error en el código al obtener los datos de las preferencias compartidas.
Las líneas de código donde se obtienen los datos y se establecen en los textView no son correctas.
En los cuatro casos, se está utilizando
txtName
en lugar del textView relevante (txtName
,txtEmail
,txtMobileNo
,txtAddress
).Las líneas de código correctas deberían ser:
Esto debería resolver el problema y establecer los datos obtenidos en los textView relevantes.