質問編集履歴
1
ご指摘ありがとうございます。文の間違いを修正して、デバッガーでのエラーメッセージを追記しました。次回からは何が原因で停止しているかデバッガーで確認するようにします、アドバイスありがとうございます。
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("f
|
297
|
+
editor.putString("fragmentId",fragmentId2);
|
262
298
|
|
263
299
|
String ketu=dataStore.getString("fragmentId", "Nothing");
|
264
300
|
|