LoginSignup
4
3

More than 5 years have passed since last update.

AndroidのData BindingでXML上でDateFormatを使ってDate型を文字列整形したい

Last updated at Posted at 2017-04-21

経緯

Data Bindingライブラリを使ってる時に、Entityが持つDate型のプロパティをそのままXML上で整形した状態で表示したかった。

Data Binding使ってるとこういう部分はViewModelに持ってくというのもありだけど、リスト表示で使うAdapterの中だとEntityを渡して表示するケースもある。

そういった場合でも表示処理を分散させたくないのでXML側に寄せたかった。

方法

Commons Lang3のDateFormatUtilsを使った

これを使って2017/04/21 00:30に投稿みたいな文字を出力させてみる

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">

    <data>
        <import type="org.apache.commons.lang3.time.DateFormatUtils" />
        <variable name="item" type="com.example.Item" />
    </data>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@{DateFormatUtils.format(item.createdAt, `yyyy/MM/dd HH:mmに投稿`)}" />
</layout>

イメージ

自分の今作ってるアプリで実際にやっている

ほか

kotlin + Data Bindingあたり使ってQiitaアプリ作ってます。
https://github.com/chuross/qiiip

ある程度できてきたらなんか記事書くかもしれない。
DataBindingライブラリちょいちょい触ってたけど、便利なのでこれも色々書いていこうと思う。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3