이번 시간에는 OnFocusChangeListener을 사용해서 EditText에 숫자를 입력하면 포커스 상태에 따라 콤마 표시를 해주는 방법에 대하여 알아보겠습니다.
- 설명 -
포커스에 따른 콤마 표시를 해줄 EditText
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="vertical"
tools:context=".MainActivity">
<EditText
android:id="@+id/price_edit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="number"
android:hint="가격1"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="number"
android:hint="가격2"/>
</LinearLayout>
- 설명 -
1. View.OnFocusChangeListener { view, hasFocus ->
hasFocus 파라미터 값을 통해 해당 뷰에 포커스 상태를 파악할 수 있습니다.
2. isNotEmpty()
값이 있는지 체크하는 함수, 값이 있다면 true 없다면 false
3. toLongFormat
콤마 표시를 해주는 함수
class MainActivity : AppCompatActivity(){
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//객체 생성
val priceEdit: EditText = findViewById(R.id.price_edit)
//포커스 이벤트(포커스 변경시에 실행)
priceEdit.onFocusChangeListener = View.OnFocusChangeListener { view, hasFocus ->
//입력값 변수에 담기
val price: String = priceEdit.text.toString()
//EditText에 포커스가 있다면
if(hasFocus){
//값이 있을때만
if(price.isNotEmpty()){
//, 를 공백으로 변경
priceEdit.setText(price.replace(",", ""))
}
}else{//EditText에 포커스가 없다면
//값이 있을때만
if(price.isNotEmpty()){
//콤마 표시
val lPrice: String = toLongForamt(price.toLong())
priceEdit.setText(lPrice)
}
}
}
}//onCreate
//콤마 표시 함수
private fun toLongForamt(num: Long): String{
val df = DecimalFormat("###,###")
return df.format(num)
}
}
2022.07.17 - [안드로이드] - [안드로이드 코틀린] OnClickListener onClick 하나로 다중 버튼 이벤트 설정하기
2022.07.16 - [안드로이드] - [안드로이드 코틀린] 프래그먼트(Fragment)에서 액티비티(Activity)로 데이터 보내는 방법
2022.07.15 - [안드로이드] - [안드로이드 코틀린] 액티비티(Activity)에서 프래그먼트(Fragment)로 데이터 보내는 방법
[안드로이드 코틀린] 기본 카메라 사진 찍고 이미지뷰에 보여주는 방법(StartActivityForResult deprecated 해결방법) (2) | 2022.07.20 |
---|---|
[안드로이드 코틀린] 텍스트(EditText) 입력 체크 및 버튼(Button) 활성화 (0) | 2022.07.19 |
[안드로이드 코틀린] OnClickListener onClick 하나로 다중 버튼 이벤트 설정하기 (0) | 2022.07.17 |
[안드로이드 코틀린] 프래그먼트(Fragment)에서 액티비티(Activity)로 데이터 보내는 방법 (0) | 2022.07.16 |
[안드로이드 코틀린] 액티비티(Activity)에서 프래그먼트(Fragment)로 데이터 보내는 방법 (0) | 2022.07.15 |
댓글 영역