728x90
안드로이드 텍스트에서 숫자에 컴마, 원화를 표시해 보겠습니다
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textTest"
android:hint="텍스트를 입력하세요"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
EditText editText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = findViewById(R.id.textTest);
editText.addTextChangedListener(new CustomTextWatcher(editText));
}
}
import android.text.Editable;
import android.text.Selection;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.util.Log;
import android.widget.EditText;
import java.text.DecimalFormat;
public class CustomTextWatcher implements TextWatcher {
EditText editText;
String strAmount = "";
String TAG ="CustomTextWatcher";
CustomTextWatcher(EditText et) {
editText = et;
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// No action needed before text changes
}
@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(",", "").replace("₩", ""));
editText.setText(strAmount);
Editable editable = editText.getText();
Selection.setSelection(editable, strAmount.length());
}
}
@Override
public void afterTextChanged(Editable s) {
// No action needed after text changes
}
protected String makeStringComma(String str) {
// 천단위 콤마 설정 및 원화 기호 추가
if (str.length() == 0) {
return "";
}
try {
long value = Long.parseLong(str);
DecimalFormat format = new DecimalFormat("###,###");
return "₩" + format.format(value);
} catch (NumberFormatException e) {
// 입력 문자열이 숫자로 변환할 수 없는 경우 빈 문자열 반환
Log.i(TAG, "makeStringComma: 숫자만 입력할 수 있습니다!!!");
return "";
}
}
}
시연화면
'안드로이드 자바' 카테고리의 다른 글
[JAVA][Android] 라디오 버튼 그룹 만들고 클릭 이벤트 감지하기 (0) | 2024.08.13 |
---|---|
[JAVA][Android] View Binding으로 레이아웃 뷰 연결하기 (0) | 2024.08.11 |
[JAVA][Android] 클릭한 라디오 버튼 배경 다르게 설정하기 (0) | 2024.08.07 |
[JAVA][Android] RecyclerView의 간격을 조정하기 (0) | 2024.08.05 |
[JAVA][Android] BottomSheetDialogFragment 에 값 전달하고 받기 (0) | 2024.08.04 |