Итак, я собираюсь взять некоторые данные, которые я записываю в файл в задании, и я хочу, чтобы они отображались в моем фрагменте в моем первом задании. Я новичок в Kotlin и только что узнал, что не могу использовать один и тот же синтаксис во фрагментах.
Я хочу использовать sharedpreferance.
Моя основная активность выглядит следующим образом и отлично работает:
private lateinit var sharedPreferences: SharedPreferences
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main2)
btnSaveEvent.setOnClickListener {
val intent = Intent(this, MainActivity::class.java)
startActivity(intent)
// Create a shared preference instance
sharedPreferences = getSharedPreferences("com.example.gifttracker", Context.MODE_PRIVATE)
// create editor and add the key value pair to the preference
val editor = sharedPreferences.edit()
editor.putString("KEY_STR", editText2.text.toString())
editor.apply()
//Read from file into a Toast to check that it saved
val str = sharedPreferences.getString("KEY_STR", null)
Toast.makeText(this, str, Toast.LENGTH_LONG).show()
}
}
Мой фрагмент не так хорош и выглядит так:
private var sharedPreferences = this.activity!!.getSharedPreferences("com.example.gifttracker", Context.MODE_PRIVATE)
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
// Inflate the layout for this fragment
val view: View = inflater.inflate(R.layout.fragment_frag1, container, false)
view.btnAddEvent.setOnClickListener {
requireActivity().startActivity(
Intent(requireActivity(), Main2Activity::class.java)
)
}
val str = sharedPreferences.getString("KEY_STR", null)
textView2.text = str
return view
}
** Обратите внимание, это вызывает сбой моего приложения ** Это связано с тем, что textView2 имеет значение null, и я не знаю, почему
Я просто хочу читать из файла, который я создал, и составить его список
Заранее спасибо