このように(9,99,999)のように自動的にテキストを編集したいと思います。私はウェブ上でこれを検索しましたが、私はこれに対して適切な解決策を得ていません。 あなたは私を助けてください。スタックオーバーフローを実感してください。アンドロイドEditTextで1000の区切り文字を追加する方法.........?
0
A
答えて
0
これを試してください。
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 start, 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(".")){ //adds "0." when only "." is pressed on begining of writting
editText.setText("0.");
}
if(value.startsWith("0") && !value.startsWith("0.")){
editText.setText(""); //Prevents "0" while starting but not "0."
}
String str = editText.getText().toString().replaceAll(",", "");
if (!value.equals(""))
editText.setText(getDecimalFormat(str));
editText.setSelection(editText.getText().toString().length());
}
editText.addTextChangedListener(this);
return;
}
catch (Exception ex)
{
ex.printStackTrace();
editText.addTextChangedListener(this);
}
}
public static String getDecimalFormat(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++;
}
}
//Trims all the comma of the string and returns
public static String trimCommaOfString(String string) {
if(string.contains(",")){
return string.replace(",","");}
else {
return string;
}
}
}
1
あなたはコード以下のように、このためにはDecimalFormatを使用することができますあなたが望むよう
public String formatNumber(double d) {
DecimalFormat formatter = (DecimalFormat) NumberFormat.getInstance(Locale.US);
formatter.applyPattern("#,###");
return formatter.format(d);
}
あなたはパターンを渡すことができます。
0
public static String formatCurrency(String number) {
try {
number = NumberFormat.getNumberInstance(Locale.US).format(Double.valueOf(number));
} catch (Exception e) {
}
return number;
}
これは私がしたものです。完全に動作します
関連する問題
- 1. キーアップイベントでJavaScriptを使用した1000個の区切り文字を追加
- 2. Anychartテーブル:1000の区切り文字の挿入方法
- 3. パイプ文字区切り文字でフィールドを区切る方法
- 4. Python pandasの数値に1000の区切り文字を追加する簡単な方法DataFrame
- 5. UltraWingrid - 文字列に1000個の区切り文字
- 6. 区切り文字でテキストファイルのフィールドを区切る方法
- 7. Cで二重に桁区切り文字を追加する#
- 8. jquery datatables - スペースを1000個の区切り文字として扱う方法は?
- 9. レコードから追加の区切り文字を削除する
- 10. ファイルの末尾に区切り文字を追加する
- 11. androidのtablayoutに区切り文字を追加する
- 12. カンマ区切り文字列にファイル名を追加する方法
- 13. 区切り文字なしの文字列をカンマ区切りの文字列に変換する方法は?
- 14. PHP;区切り文字と区切り文字の間の文字列を削除する方法は?
- 15. 数字を1000の区切り文字で区切ります。小文字の小文字の後には常に2桁の数字を表示します。
- 16. アウトファイルに区切り文字を追加する
- 17. コードに区切り文字を追加するには
- 18. 区切り文字をファイルに追加する
- 19. クロールされたコンテンツに区切り文字を追加する
- 20. Python:区切り文字のリストで区切り文字
- 21. 電子メール文字列を区切り文字で区切る
- 22. 複数の区切り文字で区切る文字列
- 23. Pythonの文字列配列にパイプ区切り文字を追加する方法
- 24. 隣の区切り文字で区切られた文字列
- 25. 区切り文字を区切り文字として使用
- 26. リテラル区切り文字(\ Q \ Eブロック内の区切り文字)
- 27. 区切り文字で区切り文字を区切り、改行して印刷する
- 28. RecyclerView SimpleItemDividerが区切り文字を間に追加しない
- 29. スパークデータフレームcsv出力とUTF-8-BOMエンコーディングでの特殊文字区切り文字の追加方法
- 30. PIGでカスタム区切り文字を設定する方法
私は新しいクラスを作成したいright – chandu
いいえ、あなたはこのNumberTextWatcherForThousandをあなたのEditTextのaddTextChangedListener –