반응형
안드로이드 EditText에서 글 입력 시 이벤트를 설정하여 함수를 실행할 수 있습니다.
아래는 소스는 숫자 입력 시 3자리마다 컴마(comma)를 출력/삭제하는 예제입니다.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
EditText e = new EditText(this);
e.addTextChangedListener(new CustomTextWatcher(e));
}
package h5bak.com;
import java.text.DecimalFormat;
import android.text.Editable;
import android.text.Selection;
import android.text.TextWatcher;
import android.widget.EditText;
public class CustomTextWathcer implements TextWatcher {
@SuppressWarnings("unused")
private EditText mEditText;
String strAmount = ""; // 임시 저장값 (콤마)
public CustomTextWathcer(EditText e) {
mEditText = e;
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) { //텍스트가 변경될때마다 실행
if (!s.toString().equals(strAmount)) { // StackOverflow 방지
strAmount = makeStringComma(s.toString().replace(",", ""));
mEditText.setText(strAmount);
Editable e = mEditText.getText();
Selection.setSelection(e, strAmount.length());
}
}
protected String makeStringComma(String str) { // 천단위 콤마 처리
if (str.length() == 0)
return "";
long value = Long.parseLong(str);
DecimalFormat format = new DecimalFormat("###,###");
return format.format(value);
}
}
--------------------------------------------------------------------------------------------
반응형
'Language > Android' 카테고리의 다른 글
| 안드로이드 appcompat_v7 (9) | 2014.05.22 |
|---|---|
| 이클립스 안드로이드 실행 (AVD, 휴대폰에 화면 띄우기) (4) | 2014.04.03 |
| 안드로이드 스튜디오 인코딩 설정(한글 깨짐 문제 해결) (10) | 2013.06.28 |
| Unable to execute dex: Multiple dex files define Lrsearch/connector/CalcBase; (0) | 2013.06.04 |
| 안드로이드 SVN(Subversion) (12) | 2013.05.31 |
| 안드로이드(Android),자바(JAVA) 소수점 자르기 (6) | 2013.03.07 |
| 안드로이드(Android) 메뉴 옵션 예제 (0) | 2013.02.26 |
| 안드로이드 체크박스(Android checkbox) 예제 (0) | 2013.02.26 |
| 안드로이드(Android) SDK 설치 방법 (8) | 2013.02.14 |
| 안드로이드 시크바(Android SeekBar) (2) | 2013.02.07 |