FragmentでSharedPreferencesを使おうと思ってActivityで使っていた過去のコードからコピーしたところ
val pref = PreferenceManager.getDefaultSharedPreferences(this)
のところで
となりました。わかっている方には当たり前のことなんでしょうけどしばらく悩みました。
調べてみると、
getDefaultSharedPreferences(Context context)
でcontextが必要なのに、FragmentはContextの子クラスではないのでダメだということがわかりました。以下の情報を参考にさせて頂きました。
Android フラグメントでcontextを使用する
フラグメントにcontextを利用するためにはどうしたらよいですか?
データベースのコンストラクタではcontextを使えますが、getApplicationContext()とFragmentCl
エラーになったところを下記のように変えたら
val pref = PreferenceManager.getDefaultSharedPreferences(getActivity())
無事、動きました。
コメント