teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2020/04/02 14:06

投稿

keicha_hrs
keicha_hrs

スコア6768

answer CHANGED
@@ -4,4 +4,13 @@
4
4
  ```
5
5
  の意図が不明です。savedInstanceStateはonCreate()の引数として受け取っていますが、この変数の値は普通にActivityが生成された場合にはnullです。ですから、上記のような処理を行うと、確実に「nullであるsavedInstanceStateを参照した」ことによりNullPointerExceptionが発生し、アプリが落ちます。
6
6
 
7
- savedInstanceStateの役割は別途調べていただくとして(検索すればすぐに出てきます)、なぜこの処理を必要としたのか今一度精査し、nullではないときに参照するようにコードを書き換えるなど、改良が必要でしょう。
7
+ savedInstanceStateの役割は別途調べていただくとして(検索すればすぐに出てきます)、なぜこの処理を必要としたのか今一度精査し、nullではないときに参照するようにコードを書き換えるなど、改良が必要でしょう。
8
+
9
+ ---
10
+
11
+ 参考にしたというページを見てみると、
12
+ ```java
13
+ SharedPreferences sharedPreferences = getSharedPreferences("GAME_DATA", MODE_PRIVATE);
14
+ int highScore = sharedPreferences.getInt("HIGH_SCORE", 0);
15
+ ```
16
+ のようになっているようですね。単純にsharedPreferencesとすべきところを、誤ってsavedInstanceStateと打ち間違えた(補完候補で出てきた別変数を選択してしまった)だけなのでしょうかね。