Android/Kotlin

EditText에 화페단위 콤마 표시

lipnus 2019. 3. 18. 17:44
반응형

숫자 사이에 콤마 표시

fun makeCommaNumber(input:Int): String{
val formatter = DecimalFormat("###,###")
return formatter.format(input)
}



EditText 리스너


var pointNumStr = "";
editText.addTextChangedListener(object : TextWatcher {

override fun afterTextChanged(p0: Editable?) {


}


override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {

}


override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {


if(!TextUtils.isEmpty(p0.toString()) && !p0.toString().equals(pointNumStr)) {
pointNumStr = makeCommaNumber(Integer.parseInt( p0.toString().replace(",","") ))
editText.setText(pointNumStr)
editText.setSelection(pointNumStr.length) //커서를 오른쪽 끝으로 보냄
}
}
})


불필요한 연산을 줄이기 위해서

 if(!TextUtils.isEmpty(p0.toString()) && !p0.toString().equals(pointNumStr)) 비어있거나 이전과 변함이 없으면 그대로 둔다.



반응형

'Android > Kotlin' 카테고리의 다른 글

다이얼로그(Alert Dialog)  (0) 2019.04.02
EditText addTextChangedListener에서 에러 표시  (0) 2019.03.19
ViewPager 예제  (0) 2019.03.14
RecyclerView Click이벤트 구현  (0) 2019.03.14
Activity - Fragment 간 Communication  (0) 2019.03.13