我需要为 TextView 设置掩码以将其文本转换为特定样式(货币,虽然是我自己的,但像这样:Rls ###,###,###,###)但我需要稍后能够得到它的原始文本。我该怎么办?
============================================= =======
假设我将把这个字符串传递给 TextView:2120000
它应该被用户看到:Rls 2,120,000
但是 .getText 方法应该返回:2120000
============================================= =======
格式化代码如下:
DecimalFormatSymbols symbols = new DecimalFormatSymbols();
symbols.setDecimalSeparator(',');
DecimalFormat decimalFormat = new DecimalFormat("Rls ###,###,###,###", symbols);
String prezzo = decimalFormat.format(Integer.parseInt(textTemp));
任何帮助将不胜感激
最佳答案
正确的方法是这样的: 将自定义 TextView 创建为 Java 类
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 中而不是 <TextView
标签
使用这样的东西:
<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 以显示货币,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27877167/