【2020/06/02】学んだこと

はじめてのAndroidプログラミング第4判 2日目
・kotlinの基本を学習。基本的にはさらっと読み流した(それでも1時間かかった)

・じゃんけんプログラム作成
その中でいくつか問題にぶつかる

・PreferenceManagerが使えなかった。Android の仕様が変更されていたためらしい。
→結論から言うと、importの中にあったandroid.preference.PreferenceManagerをandroidxに書き換えればOK
(参考:
PreferenceManagerが@Deprecatedで困った話 - Qiita

・↑の結果か、P.151に記載のあるeditメソッドはラムダ式で書き込みまで一気に記述することができなかった。
回避策としてEditorインターフェースのインスタンスを通じてコードを書くが、
何度アプリを再起動しても共有プリファレンスが初期化(clear())されず、ここで詰まる。
…P.151上部に記載のあるように、Editorインターフェースのインスタンスを通じて行った変更は、
最後にapply()またはcommit()メソッドを追加しないと保存されない、これが原因であった。

以下✕
pref.edit{
...
}

回避策○
val editor = pref.edit()
editor.clear().commit()

(参考:
ど素人のAndroidアプリ開発入門 - Preferenceの削除

・MainActivity画面にテキストを追加し、これをResultActivityから更新しようとしたが、
 ResultActivityが毎回じゃんけん後に生成され、finish()によって終了(破棄?)されているのに対し、
 MainActivityは最初に一回だけ生成されていることから、
 毎じゃんけん後にMainActivityを更新するためには、また新たな画面遷移の方法を学ぶ必要がありそう。
・↑の回避策として、ResultActivity画面に通算試合回数と連敗数を表示することには成功した。