EditText로 입력을 받을 때 숫자만 입력 받고 문자가 포함되었을 경우 다시
입력받도록 하기위한 간단한 코드이다.
xml layout이 다음과 같을 경우
inputType="number"로하면 오직 양의 정수만 입력 가능하다.
키보드에 특수 문자나 +, -, 소수점이 표시되더라도 오직 양의 정수만 입력
가능하다.
그리고 maxLength="4"로하면 4개의 숫자만 입력이 가능하다.
xml layout 파일을 아래와 같이 설정함을 통해서 숫자만 입력되도록 할수 있다.
<EditText
android:id="@+id/editPhoneNum"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/txtPhoneNum"
android:inputType="number"
android:maxLength="4"
android:textSize="40sp"/>
xml layout을 이용하거나 혹은 소스 상에서 체크할려면 다음과 같이 하는 방법도
가능하다.
EditText editPhone = (EditText)findViewById(R.id.editPhoneNum);
try {
String str = editPhone.getText().toString().trim();
//아래 str에 숫자만 있을 경우는 NumberFormatException이
//발생치 않으나 숫자 이외의 어떤 문자가 포함되면
//NumberFormatException이 발생한다.
//따라서 이 Exception이 발생하면 숫자 이외의 값이 입력되었다고
//판단하고 재 입력 받도록 처리하면된다.
int rt = Integer.parseInt(str);
Toast.makeText(this, "RT : "+rt, 1).show();
} catch(NumberFormatException e){
Toast.makeText(this, "숫자만 입력하세요", 1).show();
}
한 마디로
Integer.parseInt()를 이용하되 NumberFormatException을 이용해서
처리할 수 있다.
'Android' 카테고리의 다른 글
Thread 안에서 Thread를 사용할 경우 오류 문제 해법 (0) | 2015.10.14 |
---|---|
안드로이드 WebView의 lodaData() 에서 한글 깨짐 방지 (0) | 2015.10.14 |
adb 명령으로 디바이스에 설치된 apk 삭제하는 법 (0) | 2015.10.02 |
앱의 설치 위치 지정하기(내장 메모리, 외장 메모리) (0) | 2015.10.02 |
Android Context에 대한 이해 (1) | 2015.10.02 |