입력창에 숫자가 들어가는 경우, 포커스가 가 있는 경우와 아닌 경우 동작을 주고 싶을때 쓸 수 있는 이벤트를 알려드립니다.
[예제]
EditText 를 2개 만듭니다.
첫 번째 EditText 에 포커스가 가 있는 경우: 1000
포커스가 나간 경우: 1,000
1. activity.xml
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<EditText
android:id="@+id/ePrice"
android:layout_marginTop="20dp"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:inputType="number"
android:hint="가격1"
/>
<EditText
android:id="@+id/ePrice2"
android:layout_marginTop="20dp"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:inputType="number"
android:hint="가격2"
/>
</LinearLayout>
2. MainActivity.java
EditText ePrice;
EditText ePrice2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ePrice = findViewById(R.id.ePrice);
// 가격 포커스 이벤트
ePrice.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus){
//포커스일때 콤마를 빼준다.
String price = ePrice.getText().toString();
if(!price.equals("")){
ePrice.setText(price.replace(",",""));
}
}else{
// //포커스가 아닐때 콤마를 넣어준다(1,000)
String price = ePrice.getText().toString();
if(!price.equals("")){
String lPrice = toLongFormat(Long.parseLong(price));
ePrice.setText(lPrice);
}
}
}
});
}
/**
* 1000자리 콤마
* @param num
* @return
*/
public String toLongFormat(Long num) {
DecimalFormat df = new DecimalFormat("###,###");
return df.format(num);
}
[안드로이드] List 만들어 보기 [RecyclerView, SQLiteOpenHelper, AlertDialog] (2) | 2020.06.01 |
---|---|
[안드로이드] 첫 번째 개발한 코인앱 개발 체험기 1탄 (0) | 2020.05.29 |
[안드로이드] 입력데이터 변화 이벤트 예제 [addTextChangedListener] (0) | 2020.05.25 |
[안드로이드] 진동기능 예제 및 사용방법 [Vibrator] (0) | 2020.05.23 |
[안드로이드] 네 번째 안드로이드앱 개발 - 자전거대여정보 (0) | 2020.04.29 |
댓글 영역