回答編集履歴
1
現在時刻の扱いについてコード修正。
test
CHANGED
@@ -52,6 +52,10 @@
|
|
52
52
|
|
53
53
|
|
54
54
|
|
55
|
+
private var _buttonTapped: Boolean = false // 現在時刻ボタンが押されたらtrueに
|
56
|
+
|
57
|
+
|
58
|
+
|
55
59
|
// YYYYMMDDHHMM から各成分に該当する桁を数値に変換してバインディング用の RxProperty とする
|
56
60
|
|
57
61
|
val year = _dateTimeStr.map { dt -> dt.substring(0, 4) }.map { it->it.toInt() }.toReadOnlyRxProperty()
|
@@ -66,9 +70,9 @@
|
|
66
70
|
|
67
71
|
|
68
72
|
|
69
|
-
// ボタン押下時の現在日時と DatePicker+TimePickerの日時が同じなら現在時刻設定中であり enabled=false とする
|
73
|
+
// 現在時刻ボタンが押され、ボタン押下時の現在日時と DatePicker+TimePickerの日時が同じなら現在時刻設定中であり enabled=false とする
|
70
|
-
|
74
|
+
|
71
|
-
val buttonEnabled = _dateTimeStr.map { dt -> !TextUtils.equals(dt, _savedCurrentDateTime) }.toReadOnlyRxProperty()
|
75
|
+
val buttonEnabled = _dateTimeStr.map { dt -> !_buttonTapped && !TextUtils.equals(dt, _savedCurrentDateTime) }.toReadOnlyRxProperty()
|
72
76
|
|
73
77
|
val buttonText = buttonEnabled.map { enable -> if (enable) "現在日時を設定" else "現在時刻設定中" }.toReadOnlyRxProperty()
|
74
78
|
|
@@ -88,6 +92,8 @@
|
|
88
92
|
|
89
93
|
fun tapButton() {
|
90
94
|
|
95
|
+
_buttonTapped = true
|
96
|
+
|
91
97
|
val cal = Calendar.getInstance()
|
92
98
|
|
93
99
|
val dateTimeStr = String.format("%4d%02d%02d%02d%02d",
|