質問編集履歴

1

ご指摘ありがとうございます。文の間違いを修正して、デバッガーでのエラーメッセージを追記しました。次回からは何が原因で停止しているかデバッガーで確認するようにします、アドバイスありがとうございます。

2019/12/02 02:57

投稿

numatuka
numatuka

スコア9

test CHANGED
File without changes
test CHANGED
@@ -8,6 +8,40 @@
8
8
 
9
9
  MainActivityでEditorを宣言するところまでは上手くいきますが、SubActivity内でEditorを宣言するとその瞬間アプリが落ちてしまいデータの上書きをすることが出来ていません。
10
10
 
11
+ デバッグを行うと、Sub.javaでのdatastoreがnullになっていました。
12
+
13
+ goSubb()内のEditor editor = dataStore.edit()を実行しようとしたところでLooper.javaが呼び出されて、
14
+
15
+ ```
16
+
17
+ this=com.android.internal.os.ZygoteInit$MethodAndArgsCaller
18
+
19
+ ex=java.lang.reflect.InvocationTargetException
20
+
21
+ cause=java.lang.NullPointerException: Attempt to invoke interface method 'android.content.SharedPreferences$Editor android.content.SharedPreferences.edit()' on a null object reference
22
+
23
+ ```
24
+
25
+ というエラーメッセージと共にアプリが終了します。
26
+
27
+ また、Sub.javaのgoSubb内で
28
+
29
+ ```
30
+
31
+ dataStore = getSharedPreferences("DataStore", MODE_PRIVATE);
32
+
33
+ ```
34
+
35
+ を宣言してdataStoreにMainActivityで作ったデータを呼び出そうとしましたが、
36
+
37
+ ```
38
+
39
+ Cannot resolve method 'getSharedPreferences(java.lang.String, int)'
40
+
41
+ ```
42
+
43
+ と出てしまいgetSharedPreferencesが赤字になって呼び出すことが出来ません。datastoreにMainActivity内で入れたデータを呼び出す方法とgetSharedPreferencesでSubActivityに呼び出す方法、間違った文は無いか教えていただけると幸いです。
44
+
11
45
 
12
46
 
13
47
  #該当のソースコード
@@ -122,6 +156,8 @@
122
156
 
123
157
  ```java
124
158
 
159
+ MainActivity.java
160
+
125
161
  package com.example.intenttest;
126
162
 
127
163
 
@@ -256,9 +292,9 @@
256
292
 
257
293
  Editor editor = dataStore.edit();
258
294
 
259
- String fragmentId = "半分成功";
295
+ String fragmentId2 = "半分成功";
260
-
296
+
261
- editor.putString("flagmentId",fragmentId);
297
+ editor.putString("fragmentId",fragmentId2);
262
298
 
263
299
  String ketu=dataStore.getString("fragmentId", "Nothing");
264
300