回答編集履歴
4
コード中の不適切なコメント修正
answer
CHANGED
@@ -59,7 +59,7 @@
|
|
59
59
|
editor.apply()
|
60
60
|
|
61
61
|
// 保存できたことを確認してみる
|
62
|
-
// デフォルト
|
62
|
+
// デフォルト値を取得していないことを確認するため、123, 456 をセットしてgetInt
|
63
63
|
val hourTemp = pref.getInt("TOKEI_H", 123)
|
64
64
|
val minuteTemp = pref.getInt("TOKEI_M", 456)
|
65
65
|
Log.d("MyAlarmClock", "onTimeSet#2: saved: hour=$hourTemp, minute=$minuteTemp")
|
3
編集漏れ
answer
CHANGED
@@ -63,7 +63,6 @@
|
|
63
63
|
val hourTemp = pref.getInt("TOKEI_H", 123)
|
64
64
|
val minuteTemp = pref.getInt("TOKEI_M", 456)
|
65
65
|
Log.d("MyAlarmClock", "onTimeSet#2: saved: hour=$hourTemp, minute=$minuteTemp")
|
66
|
-
listener?.onSelected(hourOfDay, minute)
|
67
66
|
}
|
68
67
|
|
69
68
|
listener?.onSelected(hourOfDay, minute)
|
2
onTimeSetメソッドのコードを一部修正
answer
CHANGED
@@ -63,8 +63,9 @@
|
|
63
63
|
val hourTemp = pref.getInt("TOKEI_H", 123)
|
64
64
|
val minuteTemp = pref.getInt("TOKEI_M", 456)
|
65
65
|
Log.d("MyAlarmClock", "onTimeSet#2: saved: hour=$hourTemp, minute=$minuteTemp")
|
66
|
-
|
67
66
|
listener?.onSelected(hourOfDay, minute)
|
68
67
|
}
|
68
|
+
|
69
|
+
listener?.onSelected(hourOfDay, minute)
|
69
70
|
}
|
70
71
|
```
|
1
保存の例を例示
answer
CHANGED
@@ -24,4 +24,47 @@
|
|
24
24
|
}
|
25
25
|
```
|
26
26
|
|
27
|
-
尚、`Context`を使うべきか`Activity`を使うべきか実は少しデリケートな部分があるのですが、今回の例では大差無いと判断して `Activity`を使いました。気に留めておき、余裕ができたら改めて調べてみてください。
|
27
|
+
尚、`Context`を使うべきか`Activity`を使うべきか実は少しデリケートな部分があるのですが、今回の例では大差無いと判断して `Activity`を使いました。気に留めておき、余裕ができたら改めて調べてみてください。
|
28
|
+
|
29
|
+
---
|
30
|
+
**追記しました:2019-10-01 11:46**
|
31
|
+
|
32
|
+
`TimePickerDialog`の表示で[OK]ボタンを押したときに指定した時:分をもって`onTimeSet`が呼ばれるので、その時に`SharedPreferences`に保存するようにしたコードの例です。
|
33
|
+
|
34
|
+
```Kotlin
|
35
|
+
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
36
|
+
val c = Calendar.getInstance()
|
37
|
+
var hour: Int = c.get(Calendar.HOUR_OF_DAY)
|
38
|
+
var minute: Int = c.get(Calendar.MINUTE)
|
39
|
+
val pref: SharedPreferences? =
|
40
|
+
activity?.getSharedPreferences("dataSave", Context.MODE_PRIVATE)
|
41
|
+
if (pref != null) {
|
42
|
+
val c = Calendar.getInstance()
|
43
|
+
hour = pref.getInt("TOKEI_H", hour)
|
44
|
+
minute = pref.getInt("TOKEI_M", minute)
|
45
|
+
Log.d("MyAlarmClock", "onCreateDialog#1: hour=$hour, minute=$minute")
|
46
|
+
}
|
47
|
+
return TimePickerDialog(context, this, hour, minute, true)
|
48
|
+
}
|
49
|
+
|
50
|
+
override fun onTimeSet(view: TimePicker?, hourOfDay: Int, minute: Int) {
|
51
|
+
Log.d("MyAlarmClock", "onTimeSet#1: hour=$hourOfDay, minute=$minute")
|
52
|
+
|
53
|
+
val pref: SharedPreferences? =
|
54
|
+
activity?.getSharedPreferences("dataSave", Context.MODE_PRIVATE)
|
55
|
+
if (pref != null) {
|
56
|
+
val editor = pref.edit()
|
57
|
+
editor.putInt("TOKEI_H", hourOfDay)
|
58
|
+
editor.putInt("TOKEI_M", minute)
|
59
|
+
editor.apply()
|
60
|
+
|
61
|
+
// 保存できたことを確認してみる
|
62
|
+
// デフォルトの値を読み込まないよう、123, 456 をセットしてgetInt
|
63
|
+
val hourTemp = pref.getInt("TOKEI_H", 123)
|
64
|
+
val minuteTemp = pref.getInt("TOKEI_M", 456)
|
65
|
+
Log.d("MyAlarmClock", "onTimeSet#2: saved: hour=$hourTemp, minute=$minuteTemp")
|
66
|
+
|
67
|
+
listener?.onSelected(hourOfDay, minute)
|
68
|
+
}
|
69
|
+
}
|
70
|
+
```
|