用十进制格式设置ValueAimator setText Android JAVA

问题描述

我有一个动画 setText 显示。我从 JSON 响应中获取字符串值并使用 valueAnimator 显示它。

我需要将最终的 setText 格式化为 1000s 格式 (#,###)

例如

目前我得到:50125

预期:50,125

                   DecimalFormat decim = new DecimalFormat("#,###");
                    //Total no animate
                    ValueAnimator animator = new ValueAnimator();
                    animator.setObjectValues(0,Integer.parseInt(total_no));
                    animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
                        public void onAnimationUpdate(ValueAnimator animation) {
                            tvtotal_no.setText(String.valueOf(animation.getAnimatedValue()));
                          //tvtotal_no.setText(decim.format(Integer.parseInt(total_cases)));
                        }
                    });
                    animator.setDuration(500);
                    animator.start();

解决方法

您需要实际使用 DecimalFormat:

DecimalFormat decim = new DecimalFormat("#,###");
//Total no animate
ValueAnimator animator = new ValueAnimator();
animator.setObjectValues(0,Integer.parseInt(total_no));
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
    public void onAnimationUpdate(ValueAnimator animation) {
          tvtotal_no.setText(decim.format(animation.getAnimatedValue()));
    }
});
animator.setDuration(500);
animator.start();

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...