Android 自定义 TextView 显示货币 [英] Android Custom TextView to show Currency

查看:26
本文介绍了Android 自定义 TextView 显示货币的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要为 textview 设置掩码以将其文本转换为特定样式(货币,我自己的虽然像这样:Rls ###,###,###,###)但我需要以后能够得到它的原始文本.我该怎么办?

I need to set a mask for a textview to convert its text to a specific style (Currency, my own though Like this: Rls ###,###,###,### ) but I need to be able to get it's raw text later on. What shall I do?

========================================================

======================================================

说我将把这个字符串传递给 TextView:2120000

say I will pass this string to the TextView: 2120000

它应该被用户看到:Rls 2,120,000

但是 .getText 方法应该返回:2120000

but the .getText method should return: 2120000

========================================================

======================================================

格式化代码如下:

DecimalFormatSymbols symbols = new DecimalFormatSymbols();
symbols.setDecimalSeparator(',');
DecimalFormat decimalFormat = new DecimalFormat("Rls ###,###,###,###", symbols);
String prezzo = decimalFormat.format(Integer.parseInt(textTemp));

任何帮助将不胜感激

推荐答案

正确的做法是:将自定义 TextView 创建为 Java 类

Correct way would be this: To create a custom TextView as a Java Class

public class RialTextView extends TextView {

    String rawText;

    public RialTextView(Context context) {
        super(context);

    }

    public RialTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public RialTextView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    public void setText(CharSequence text, BufferType type) {
        rawText = text.toString();
        String prezzo = text.toString();
        try {

            DecimalFormatSymbols symbols = new DecimalFormatSymbols();
            symbols.setDecimalSeparator(',');
            DecimalFormat decimalFormat = new DecimalFormat("###,###,###,###", symbols);
            prezzo = decimalFormat.format(Integer.parseInt(text.toString()));
        }catch (Exception e){}

        super.setText(prezzo, type);
    }

    @Override
    public CharSequence getText() {

        return rawText;
    }
}

并在 XML 中而不是 标记使用这样的东西:

and in the XML instead of <TextView tag using something like this:

<com...RialTextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Price"
        android:id="@+id/tv_itemgriditems_Price"
        android:layout_below="@+id/tv_itemgriditems_Remain"
        android:layout_centerHorizontal="true"
        android:textSize="15sp"
        />

这篇关于Android 自定义 TextView 显示货币的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆