回答編集履歴

1

現在時刻の扱いについてコード修正。

2018/01/16 03:51

投稿

amay077
amay077

スコア1075

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",