プロジェクト

全般

プロフィール

« | » 

リビジョン 1f41ee5b

高徹 高橋 徹 さんが約5年前に追加

refs #189 Improved textview of measuredAt to use binding more.

差分を表示:

learn/android/TempRecorderJetpackKt/app/src/main/java/com/torutk/android/temprecorder/jetpackkt/BindingUtils.kt
import android.widget.TextView
import androidx.databinding.BindingAdapter
import com.torutk.android.temprecorder.jetpackkt.domain.Temperature
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
internal var formatter: DateTimeFormatter? = null
@BindingAdapter("measuredAtFormatted")
fun TextView.setMeasuredAtFormatted(item: Temperature) {
val pattern = context.resources.getString(R.string.main_measured_at_format)
val formatter = DateTimeFormatter.ofPattern(pattern)
text = item.measuredAt.format(formatter)
}
fun TextView.setMeasuredAtFormatted(dateTime: LocalDateTime) {
if (formatter == null) {
val pattern = context.resources.getString(R.string.main_measured_at_format)
formatter = DateTimeFormatter.ofPattern(pattern)
}
text = dateTime.format(formatter)
}
learn/android/TempRecorderJetpackKt/app/src/main/java/com/torutk/android/temprecorder/jetpackkt/MainActivity.kt
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val binding: ActivityMainBinding = DataBindingUtil.setContentView(this, R.layout.activity_main)
binding.lifecycleOwner = this
binding.viewModel = temperatureViewModel
setContentView(binding.root)
// 検温日時の変更監視と表示設定
val measuredAtObserver = Observer<LocalDateTime> {
binding.textviewMainMeasuredat.text = it.format(DATE_TIME_VIEW_FORMATTER)
}
temperatureViewModel.measuredAt.observe(this, measuredAtObserver)
// 検温日時の増減操作
binding.buttonMainIncminite.setOnClickListener { temperatureViewModel.incrementMeasuredAt(10) }
binding.buttonMainDecminite.setOnClickListener { temperatureViewModel.decrementMeasuredAt(10) }
learn/android/TempRecorderJetpackKt/app/src/main/res/layout/activity_main.xml
<data>
<variable
name="temperatureViewModel"
name="viewModel"
type="com.torutk.android.temprecorder.jetpackkt.MainViewModel" />
</data>
......
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textview_main_submittitle"
app:measuredAtFormatted="@{viewModel.measuredAt}"
tools:text="09.27 21:22" />
<Button
learn/android/TempRecorderJetpackKt/app/src/main/res/layout/item_temperature.xml
android:layout_weight="1"
android:textAlignment="center"
android:textSize="16sp"
app:measuredAtFormatted="@{temperature}" />
app:measuredAtFormatted="@{temperature.measuredAt}" />
<TextView
android:id="@+id/measurement"

他の形式にエクスポート: Unified diff