숫자 사이에 콤마 표시
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 |