スマホアプリ開発つまずきポイント:プリファレンスへのデータ保存~金宏和實「作ればわかる!Androidプログラミング」
金宏和實著「作ればわかる!Androidプログラミング」で、スマーホアプリを勉強中です。最新版で対応していない部分について、修正方法を記します。
今回は、第5章で発生した、プリファレンスデータ保存に関わる不具合です。
※使用環境:2021年12月時点(Android Studio Arctic Fox 2020.3.1 Patch 4)API31
★Kotlinバージョンアップで、プログラムが動かない!
スマホアプリの作成に挑戦中です。以下の書籍に沿って、学んでいます(購入時の記事は、→こちら)。
・金宏和實著:作ればわかる!Androidプログラミング・Kotlin対応~10の実践サンプルで学ぶAndroidアプリ開発入門、2019/6、翔泳社
開発環境の導入から、プログラミング、実機への導入まで、ひととおりの手順が書かれていて、とても分かりやすく実用的な書籍です。ただ、残念なことに、一部のソースコードが、そのままでは動きません。2019年6月の発刊であり、現在までに開発言語「Kotlin(コトリン)」が何度もバージョンアップされていることが原因です。
2021年12月時点の環境(Android
Studio Arctic Fox 2020.3.1 Patch
4)で動作するように、修正をしながら試しています。解決した部分は、当ブログに書きます。同様のエラーでお困りの方に、お役に立てば幸いです。(勉強中の人が書いています。ご指摘などありましたら、ぜひコメントください。)
★第5章:プリファレンスへのデータ保存
◎使用環境
・開発環境:Android Studio Arctic Fox 2020.3.1 Patch 4 / API31 Platform
・実機:スマートフォン OPPO CPH2099
◎不具合発生箇所
・対象コード:第5章 p.150 リスト5.4 EditActivity.kt
◎発生状況
・自動importされた「PreferenceManager」に取り消し線が付く(下図)。
・本文の「PreferenceManager」にも、取り消し線が付く。
◎原因
・旧バージョンのPreference Managerが廃止された(deprecated)。
◎対策
新バージョンのPreference
Managerを、gradleで指定します。そのために、「build.gradle(Module:app)」の「dependencies」の中に、以下を追加します。(ハイライト表示で最新バージョンを促されたときは、最新バージョン番号に書き換えて下さい。)
implementation 'androidx.preference:preference-ktx:1.1.1' |

上の変更を行ったのち、gradleのSyncを実行します(上部に出たバーで「Sync Now」をクリック)。
その後で、「EditActivity.kt」に戻ります。古いimport文「import android.preference.PreferenceManager」を削除します。すると、本文「val pref=PreferenceManager...」が赤文字で表示されます。ここで赤文字の上をクリックして「import」を選びます。すると、新たなimport文が自動追加されるはずです。これによって、本文の赤文字が解消されます。
import androidx.preference.PreferenceManager //自動追加される ... val pref=PreferenceManager.getDefaultSharedPreferences(this)... |

◎補足
完全動作のためには、上に加えて、「Android-Kotlin拡張プラグイン」廃止対応として、「binding」を用いる修正が必要です。詳しい修正方法は、別記事(→こちら)を参照ください。使用するbindingの型は、以下のようになります。
・activity_main.xml → private lateinit var binding: ActivityMainBinding
・activity_edit.xml → private lateinit var binding: ActivityEditBinding
これにて完動!

Comments
Post a Comment