回答編集履歴
4
コード中の不適切なコメント修正
test
CHANGED
@@ -120,7 +120,7 @@
|
|
120
120
|
|
121
121
|
// 保存できたことを確認してみる
|
122
122
|
|
123
|
-
// デフォルト
|
123
|
+
// デフォルト値を取得していないことを確認するため、123, 456 をセットしてgetInt
|
124
124
|
|
125
125
|
val hourTemp = pref.getInt("TOKEI_H", 123)
|
126
126
|
|
3
編集漏れ
test
CHANGED
@@ -128,8 +128,6 @@
|
|
128
128
|
|
129
129
|
Log.d("MyAlarmClock", "onTimeSet#2: saved: hour=$hourTemp, minute=$minuteTemp")
|
130
130
|
|
131
|
-
listener?.onSelected(hourOfDay, minute)
|
132
|
-
|
133
131
|
}
|
134
132
|
|
135
133
|
|
2
onTimeSetメソッドのコードを一部修正
test
CHANGED
@@ -128,12 +128,14 @@
|
|
128
128
|
|
129
129
|
Log.d("MyAlarmClock", "onTimeSet#2: saved: hour=$hourTemp, minute=$minuteTemp")
|
130
130
|
|
131
|
-
|
132
|
-
|
133
131
|
listener?.onSelected(hourOfDay, minute)
|
134
132
|
|
135
133
|
}
|
136
134
|
|
135
|
+
|
136
|
+
|
137
|
+
listener?.onSelected(hourOfDay, minute)
|
138
|
+
|
137
139
|
}
|
138
140
|
|
139
141
|
```
|
1
保存の例を例示
test
CHANGED
@@ -51,3 +51,89 @@
|
|
51
51
|
|
52
52
|
|
53
53
|
尚、`Context`を使うべきか`Activity`を使うべきか実は少しデリケートな部分があるのですが、今回の例では大差無いと判断して `Activity`を使いました。気に留めておき、余裕ができたら改めて調べてみてください。
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
---
|
58
|
+
|
59
|
+
**追記しました:2019-10-01 11:46**
|
60
|
+
|
61
|
+
|
62
|
+
|
63
|
+
`TimePickerDialog`の表示で[OK]ボタンを押したときに指定した時:分をもって`onTimeSet`が呼ばれるので、その時に`SharedPreferences`に保存するようにしたコードの例です。
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
```Kotlin
|
68
|
+
|
69
|
+
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
70
|
+
|
71
|
+
val c = Calendar.getInstance()
|
72
|
+
|
73
|
+
var hour: Int = c.get(Calendar.HOUR_OF_DAY)
|
74
|
+
|
75
|
+
var minute: Int = c.get(Calendar.MINUTE)
|
76
|
+
|
77
|
+
val pref: SharedPreferences? =
|
78
|
+
|
79
|
+
activity?.getSharedPreferences("dataSave", Context.MODE_PRIVATE)
|
80
|
+
|
81
|
+
if (pref != null) {
|
82
|
+
|
83
|
+
val c = Calendar.getInstance()
|
84
|
+
|
85
|
+
hour = pref.getInt("TOKEI_H", hour)
|
86
|
+
|
87
|
+
minute = pref.getInt("TOKEI_M", minute)
|
88
|
+
|
89
|
+
Log.d("MyAlarmClock", "onCreateDialog#1: hour=$hour, minute=$minute")
|
90
|
+
|
91
|
+
}
|
92
|
+
|
93
|
+
return TimePickerDialog(context, this, hour, minute, true)
|
94
|
+
|
95
|
+
}
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
override fun onTimeSet(view: TimePicker?, hourOfDay: Int, minute: Int) {
|
100
|
+
|
101
|
+
Log.d("MyAlarmClock", "onTimeSet#1: hour=$hourOfDay, minute=$minute")
|
102
|
+
|
103
|
+
|
104
|
+
|
105
|
+
val pref: SharedPreferences? =
|
106
|
+
|
107
|
+
activity?.getSharedPreferences("dataSave", Context.MODE_PRIVATE)
|
108
|
+
|
109
|
+
if (pref != null) {
|
110
|
+
|
111
|
+
val editor = pref.edit()
|
112
|
+
|
113
|
+
editor.putInt("TOKEI_H", hourOfDay)
|
114
|
+
|
115
|
+
editor.putInt("TOKEI_M", minute)
|
116
|
+
|
117
|
+
editor.apply()
|
118
|
+
|
119
|
+
|
120
|
+
|
121
|
+
// 保存できたことを確認してみる
|
122
|
+
|
123
|
+
// デフォルトの値を読み込まないよう、123, 456 をセットしてgetInt
|
124
|
+
|
125
|
+
val hourTemp = pref.getInt("TOKEI_H", 123)
|
126
|
+
|
127
|
+
val minuteTemp = pref.getInt("TOKEI_M", 456)
|
128
|
+
|
129
|
+
Log.d("MyAlarmClock", "onTimeSet#2: saved: hour=$hourTemp, minute=$minuteTemp")
|
130
|
+
|
131
|
+
|
132
|
+
|
133
|
+
listener?.onSelected(hourOfDay, minute)
|
134
|
+
|
135
|
+
}
|
136
|
+
|
137
|
+
}
|
138
|
+
|
139
|
+
```
|