在EditText中使用numberDecimal inputType的十进制分隔符逗号(',')

输入inputType numberDecimalEditText使用点“。”。作为小数点分隔符。在欧洲,通常使用逗号','代替。即使我的语言环境设置为德语,小数点分隔符仍为“。”。

有没有办法将逗号作为小数点分隔符?


杨__羊羊
浏览 5467回答 3
3回答

呼唤远方

此处提供的“数字”解决方案的一种变体:char separator = DecimalFormatSymbols.getInstance().getDecimalSeparator();input.setKeyListener(DigitsKeyListener.getInstance("0123456789" + separator));考虑到语言环境分隔符。

凤凰求蛊

EditText的以下代码货币掩码($ 123,125.155)Xml布局&nbsp; <EditText&nbsp; &nbsp; android:inputType="numberDecimal"&nbsp; &nbsp; android:layout_height="wrap_content"&nbsp; &nbsp; android:layout_width="200dp"&nbsp; &nbsp; android:digits="0123456789.,$" />码EditText testFilter=...testFilter.addTextChangedListener( new TextWatcher() {&nbsp; &nbsp; &nbsp; &nbsp; boolean isEdiging;&nbsp; &nbsp; &nbsp; &nbsp; @Override public void onTextChanged(CharSequence s, int start, int before, int count) { }&nbsp; &nbsp; &nbsp; &nbsp; @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { }&nbsp; &nbsp; &nbsp; &nbsp; @Override public void afterTextChanged(Editable s) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(isEdiging) return;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; isEdiging = true;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; String str = s.toString().replaceAll( "[^\\d]", "" );&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; double s1 = Double.parseDouble(str);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; NumberFormat nf2 = NumberFormat.getInstance(Locale.ENGLISH);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ((DecimalFormat)nf2).applyPattern("$ ###,###.###");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; s.replace(0, s.length(), nf2.format(s1));&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; isEdiging = false;&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; });
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android