[Android] EditText 천단위 콤마(,)설정하기
2021. 1. 3. 03:49
EditText 천단위 콤마(,)설정하기
EditText를 작성할 때, TextWatcher를 이용해 천단위마다 콤마(,)를 찍을 수 있습니다.
여러 개의 EditText에 콤마(,) 설정을 하기위해서는 콤마설정을 하는 커스텀을 만들어주면 됩니다.
CustomTextWathcer 클래스
public class CustomTextWatcher implements TextWatcher {
private EditText editText;
String strAmount = "";
CustomTextWatcher(EditText et) {
editText = et;
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if(!TextUtils.isEmpty(s.toString()) && !s.toString().equals(strAmount)) {
strAmount = makeStringComma(s.toString().replace(",", ""));
editText.setText(strAmount);
Editable editable = editText.getText();
Selection.setSelection(editable, strAmount.length());
}
}
@Override
public void afterTextChanged(Editable s) {
}
protected String makeStringComma(String str) { // 천단위 콤마설정.
if (str.length() == 0) {
return "";
}
long value = Long.parseLong(str);
DecimalFormat format = new DecimalFormat("###,###");
return format.format(value);
}
}
makeStringComma는 천단위마다 콤마설정을 합니다.
그리고 onTextChanged에서 EditText에 값이 입력될 때마다 천단위에 콤마를 찍어줍니다.
edittext.addTextChangedListener(new CustomTextWathcher(edittext));
addTextChangedListener로 커스텀(CustomTextWatcher)을 사용하면 됩니다.
'안드로이드 > Android' 카테고리의 다른 글
[Android] Handler로 딜레이 주기 (0) | 2021.03.17 |
---|---|
[Android] getId() 문자 가져오기 (0) | 2021.03.17 |
[Android] 앱 내에서 구글플레이로 이동방법 (1) | 2020.11.22 |
[Android] 안드로이드 액티비티 세로고정 (0) | 2020.11.21 |
[Android] Keystore 보안 (0) | 2020.11.17 |