преобразовать число в десятичное, используя привязку данных - PullRequest
0 голосов
/ 21 сентября 2018

У меня есть целочисленное значение: 10000, которое я хочу привязать к интерфейсу как 100.00.

android:text="@{BigDecimal(viewModel.transactionDetail.transaction.amount).toString()}"

1 Ответ

0 голосов
/ 21 сентября 2018

Привязка данных не предназначена для реализации логики внутри представления, она предусмотрена для присоединения представления к моделям данных.

Если вы используете контроллеры / обработчики, вы можете поместить туда свою логику преобразования.См. документацию по привязке данных , вы всегда увидите обработчики в их примерах.

Путь 1

Используя обработчик, вы можете написать свою логику преобразования в обработчике.

<variable
    name="handler"
    type="com.package.MainHandler"/>

android:text="@{handler.getAmountInDollar(transaction.amount)}"

В вашей деятельности / фрагменте

binding.setHandler(new Handler());

В обработчике

public String getAmountInDollar(int amount) {
    return new DecimalFormat("##.##").format(amount);
}

Способ 2

Если вы по-прежнему не используете Presenter, вы можете сделать это.

public class Transaction {
    private int amount;

    public String getAmountInDollar() {
        return new DecimalFormat("##.##").format(amount);
    }
}

Теперь вы можете сделать это

android:text="@{transaction.amountInDollar}"

Вот как вы должны это сделать.

...