使用数据绑定将整数转换为十进制

时间:2018-09-21 02:41:07

标签: android android-databinding

我有一个整数值:10000,我想将其作为100.00绑定到接口。

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

1 个答案:

答案 0 :(得分:-1)

  

数据绑定不是用于在视图内部实现逻辑,而是   提供了将视图附加到数据模型的功能。

如果使用控制器/处理程序,则可以在其中放置转换逻辑。请参见data binding documentation,您将始终在其示例中看到处理程序。

方法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

如果您仍然不使用演示者,则可以这样做。

public class Transaction {
    private int amount;

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

现在您可以这样做

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

这就是您应该这样做的方式。