🤖 안드로이드 Android

[안드로이드/Android] EditText 자동 하이픈(-) 설정, 키보드 자동으로 올리기

핑크빛연어 2021. 5. 4. 11:44

 

안녕하세요! 안드로이드 에서 EditText 를 사용할 때 알아두면 좋은 것!

 

 

1. activity_main.xml

 

xml 에서 EditText 사용 시 설정방법입니다~

 

 

android:hint="전화번호"  text 가 빈 상태(empty) 일 떄 출력될 텍스트 설정 (javascript 의 placeholder 같은거예용)

 

tools:text="010-0000-0000"   보통 android:text 를 사용하죠? tools:text 는 xml의 layout preview에서 어떻게 나오는지 확인할수 있고 실제 앱에서는 표시되지 않아서 개발 시 유용하게 사용 가능합니다.

 

android:inputType="phone"   키보드 입력 시 전화번호 만 가능하도록 설정

android:maxLength="13"  text 의 글자수 제한 (최대 길이 설정) - 보통 전화번호나 주민등록번호를 입력받을 때 사용합니다.

 

<EditText
  android:id="@+id/et_phone"
  android:layout_width="0dp"
  android:layout_height="match_parent"
  android:layout_weight="80"
  android:hint="전화번호"
  tools:text="010-0000-0000"
  android:gravity="center"
  android:inputType="phone"
  android:maxLength="13"
  android:background="@drawable/custom_check_button">
</EditText>

 

 

 

2. EditText 자동 하이픈(-) 설정

 

 

edittext 자동 하이픈(-) 설정을 해주려면 

 

일단 xml 의 EdtitText

android:inputType="phone" android:maxLength="13" 를 추가해줍니다.

android:inputType="phone"
android:maxLength="13"

 

액티비티 java 파일에 다음과 같은 코드를 추가해줍니다.

EditText editText = (EditText) findViewById(R.id.et_phone);

// 연락처 입력시 하이픈(-) 자동 입력
editText.addTextChangedListener(new PhoneNumberFormattingTextWatcher());

 

 

 

3. EditText 키보드 자동으로 올리기

 

액티비티 java 파일에 다음과 같은 코드를 추가해줍니다.

EditText editText = (EditText) findViewById(R.id.et_phone);

new Handler().postDelayed(new Runnable() {
    public void run() { 
        editText.requestFocus();
        InputMethodManager inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
        inputManager.showSoftInput(editText, 0);
        editText.setSelection(et_phone.length());
    }
}, 100);

 

 

 

감사합니다 :)

 

 

 

728x90
반응형