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

回答編集履歴

2

修正回答

2018/06/26 07:20

投稿

keicha_hrs
keicha_hrs

スコア6768

answer CHANGED
@@ -1,1 +1,23 @@
1
- 質問の意味を完全に取りてしまったので撤回します(汗)
1
+ 先に完全にいした回答をしてしまったので、一度撤回しています。申し訳ありません。
2
+
3
+ ---
4
+
5
+ 示していただいたactivity_screenstart.xmlに、ハイスコアを表示すべきウィジェットがないように思いますが。プログラム的に配置することもできないくはないですが、位置調整が面倒ですからレイアウトエディターで配置すべきではないかと思います。その辺、どういう設計思想なのかわかりませんが・・・。
6
+
7
+ ```xml
8
+ <TextView
9
+ android:id="@+id/highScore"
10
+ android:layout_width="wrap_content"
11
+ android:layout_height="wrap_content"
12
+ />
13
+ ```
14
+
15
+ のようにして配置したなら、PlayLogクラスのメソッドはstaticで作っていますし、MainActivity.javaのような他のActivityであっても
16
+
17
+ ```java
18
+ int score = PlayLog.bestScore();
19
+ TextView textView = findViewById(R.id.highScore);
20
+ textView.setText(String.valueOf(score));
21
+ ```
22
+
23
+ の要領で表示できるのでは?と思いますが。

1

撤回

2018/06/26 07:20

投稿

keicha_hrs
keicha_hrs

スコア6768

answer CHANGED
@@ -1,23 +1,1 @@
1
- そういった情報記録には、SharedPreferencesというもの使いましょう。
1
+ 質問意味完全に取り違えてしったので撤回ます(汗)
2
-
3
- 保存
4
-
5
- ```Java
6
- SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
7
- SharedPreferences.Editor editor = prefs.edit();
8
- editor.putInt("hiscore", score);
9
- ```
10
-
11
- putInt()の第1引数はKEY、第2引数はそのKEYとして保存する値となります。putBoolean()、putFloat()、putLong()、putString()というメソッドもあって、保存したい値の型によって使い分けます。
12
-
13
-
14
- 読込
15
- ```Java
16
- SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
17
- int hiscore = prefs.getInt("hiscore", 0);
18
- ```
19
-
20
- 読み込むときは、取得メソッド(書き込みと同様に、getBoolean()など戻り値型の分だけメソッドがある)の第1引数に、書き込んだときのKEYを指定することで対応する値を読み出せます。第2引数には、そのKEYの値が存在しない(まだ保存したことがない)ときのデフォルト値になります。なお、getString()には第2引数は存在せず、値が存在しないときにはnullが返ります。
21
-
22
- [SharedPreferencesの公式リファレンス](https://developer.android.com/reference/android/content/SharedPreferences)
23
- [SharedPreferences.Editorの公式リファレンス](https://developer.android.com/reference/android/content/SharedPreferences.Editor)