大佬教程收集整理的这篇文章主要介绍了Android EditText中文本更改时自动添加千位分隔符,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我见过
Question 1 – 问题在于添加逗号计数“.” (DOT)也作为数值.
Question 2 – 问题是它在文本被更改时没有显示它的结果
Question 3 – 问题是它在第15个字母后连续添加0.
还有更多问题和答案,
但是我找不到任何符合千分离器一般要求的东西.
是否有任何有用的提示可以帮助我顺利添加千位分隔符,因为文本已更改并且处理方式不同
小数点后的数字如计算器?
我会感激任何帮助.
以下代码的详细说明
>在EditText中将千位分隔符作为文本更改.
>在按下句点(.)时自动添加0.在第一位.
>在Beginning处忽略0输入.
类名:numberTextWatcherForThousand实现TextWatcher
import android.text.Editable; import android.text.TextWatcher; import android.widget.EditText; import java.util.StringTokenizer; /** * Created by Shreekrishna on 12/14/2014. */ public class numberTextWatcherForThousand implements TextWatcher { EditText editText; public numberTextWatcherForThousand(EditText editText) { this.editText = editText; } @Override public void beforeTextChanged(CharSequence s,int start,int count,int after) { } @Override public void ontextChanged(CharSequence s,int before,int count) { } @Override public void afterTextChanged(Editable s) { try { editText.removeTextChangedListener(this); String value = editText.getText().toString(); if (value != null && !value.equals("")) { if(value.startsWith(".")){ editText.setText("0."); } if(value.startsWith("0") && !value.startsWith("0.")){ editText.setText(""); } String str = editText.getText().toString().replaceAll(",",""); if (!value.equals("")) editText.setText(get@R_618_6221@lFormattedString(str)); editText.setSELEction(editText.getText().toString().length()); } editText.addTextChangedListener(this); return; } catch (Exception eX) { ex.printStackTrace(); editText.addTextChangedListener(this); } } public static String get@R_618_6221@lFormattedString(String value) { StringTokenizer lst = new StringTokenizer(value,"."); String str1 = value; String str2 = ""; if (lst.countTokens() > 1) { str1 = lst.nextToken(); str2 = lst.nextToken(); } String str3 = ""; int i = 0; int j = -1 + str1.length(); if (str1.charAt( -1 + str1.length()) == '.') { j--; str3 = "."; } for (int k = j;; k--) { if (k < 0) { if (str2.length() > 0) str3 = str3 + "." + str2; return str3; } if (i == 3) { str3 = "," + str3; i = 0; } str3 = str1.charAt(k) + str3; i++; } } public static String trimCommaOfString(String String) { // String returnString; if(String.contains(",")){ return String.replace(","");} else { return String; } } }
在EditText上使用此类,如下所示
editText.addTextChangedListener(new numberTextWatcherForThousand(editText));
将输入作为纯文本输入为Double
numberTextWatcherForThousand.trimCommaOfString(editText.getText().toString());
以上是大佬教程为你收集整理的Android EditText中文本更改时自动添加千位分隔符全部内容,希望文章能够帮你解决Android EditText中文本更改时自动添加千位分隔符所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。