假设用户使用包含以下内容的EditText字段开始:
.
用户想要在字段中输入$12.53(即数字1,2,5,3).然后他/她从输入1开始,该字段应如下所示:
0.1
然后:
0.12
下一个:
1.25
最后:
12.53
因此,您可能会注意到,随着数字的输入,小数位也会相应地自行放置.是否可以在输入数字时执行此 *** 作?谢谢.
解决方法 是的,这很有可能,即使您不必分别管理“$”和小数.下面是TextWatcher *** 作的简单EditText:
final EditText editText = (EditText) findVIEwByID(R.ID.edt); editText.addTextChangedListener(new TextWatcher() { @OverrIDe public voID beforeTextChanged(CharSequence charSequence,int i,int i1,int i2) { } @OverrIDe public voID onTextChanged(CharSequence charSequence,int i2) { } @OverrIDe public voID afterTextChanged(Editable editable) { if (editText == null) return; String inputString = editable.toString(); editText.removeTextChangedListener(this); String cleanString = inputString.toString().replaceAll("[$,.]",""); BigDecimal bigDecimal = new BigDecimal(cleanString).setScale(2,BigDecimal.ROUND_FLOOR).divIDe(new BigDecimal(100),BigDecimal.ROUND_FLOOR); String converted = NumberFormat.getCurrencyInstance().format(bigDecimal); editText.setText(converted); editText.setSelection(converted.length()); editText.addTextChangedListener(this); } });
如果您需要知道如何在xml中创建EditText,请执行以下 *** 作:
<EditText androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:ID="@+ID/edt" androID:inputType="numberDecimal" androID:textDirection="anyRtl" androID:gravity="right"/>
这是一个老问题,但也许,最好回答:)
总结以上是内存溢出为你收集整理的Android:将小数点添加到EditText字段,并使其随输入移动全部内容,希望文章能够帮你解决Android:将小数点添加到EditText字段,并使其随输入移动所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)