안드로이드 에디트텍스트 속성 6. [numeric, password, phoneNumber, selectAllOnFocus, textColorHighlight] (Android EditText Attributes 6)

2016. 12. 28. 19:28

1. EditText 속성 (6)

EditText 속성 리스트 및 요약 설명을 확인하시려면 [안드로이드 에디트텍스트 속성] 페이지를 참고하시기 바랍니다.


EditText 속성에 대한 자세한 설명 및 예제를 확인하시려면, 아래 표에서 속성 이름을 클릭하시기 바랍니다.


속성 속성 속성 속성 속성
autoLink autoText breakStrategy bufferType capitalize
cursorVisible digits drawableBottom drawableEnd drawableLeft
drawablePadding drawableRight drawableStart drawableTint drawableTintMode
drawableTop editable editorExtras elegantTextHeight ellipsize
ems fontFamily fontFeatureSettings freezesText gravity
height hint hyphenationFrequency imeActionId imeActionLabel
imeOptions includeFontPadding inputMethod inputType letterSpacing
lineSpacingExtra lineSpacingMultiplier lines linksClickable marqueeRepeatLimit
maxEms maxHeight maxLength maxLines maxWidth
minEms minHeight minLines minWidth numeric
password phoneNumber privateImeOptions scrollHorizontally selectAllOnFocus
shadowColor shadowDx shadowDy shadowRadius singleLine
text textAllCaps textAppearance textColor textColorHighlight
textColorHint textColorLink textIsSelectable textScaleX textSize
textStyle typeface width

2. EditText 속성 활용

2.1 숫자만 입력 가능하게 만들기. (numeric)

"numeric" 속성은 TextView에 숫자만 입력되도록 만들 때 사용합니다.

  * android:numeric - 숫자만 입력 가능.
        > integer, signed, decimal 값 사용 가능.
        > 세 가지 중 하나 또는 "|"로 조합해서 사용 가능. (예. "signed | decimal")
          -. integer (0x01) : 숫자 입력. (정수만 가능)
          -. signed  (0x03) : 숫자 입력. (부호("-") 사용 가능) 
          -. decimal (0x05) : 숫자 입력. (소수(".") 입력 가능)
        > deprecated in API Level 3.

하지만 numeric 속성은 API Level 3에서 deprecated 되었으며, 대신 "inputType" 속성에 "number" 값을 사용하는 것으로 대체되었습니다.


number 속성 값 대체된 inputType 속성 값
integer (0x01) inputType="number"
signed (0x03) inputType="numberSigned"
decimal (0x05) inputType="numberDecimal"

inputType에 대한 자세한 사용법은 [안드로이드 에디트텍스트 속성 5. [inputMethod, inputType]]에서 확인할 수 있습니다.

2.2 입력되는 텍스트 감추기. (password)

TextView에 텍스트가 입력될 때, 입력되는 문자가 화면에 표시되지 않도록 만들 수 있습니다. 사용자 인증이 필요한 곳에서 암호를 입력하는 필드에 사용될 수 있는데, 입력하는 문자 대신 '•'(password dot)같은 문자로 대신 표시됩니다.

  * android:password - 입력되는 텍스트 감추기.
        > 입력 문자 대신 '•'(password dot) 표시.
        > true 또는 false 값 지정 (기본 값 false).
        > deprecated in API Level 3.

password 속성은 API Level 3에서 deprecated되어 사용할 수 없습니다. 대신 "inputType" 속성에 "textPassword" 값을 지정하는 것으로 대체할 수 있습니다.


inputType="textPassword"

inputType에 대한 자세한 사용법은 [안드로이드 에디트텍스트 속성 5. [inputMethod, inputType]]에서 확인할 수 있습니다.

2.3 전화번호만 입력 가능하게 만들기. (phoneNumber)

numeric에 이어 또 하나의 문자 입력 제한 방법을 알아볼까요? 바로 "phoneNumber" 속성입니다. 이름 그대로 전화번호 형식만 입력 가능하도록 제한하는 속성입니다.

  * android:phoneNumber - 전화번호 형식만 입력 가능하도록 제한.
        > true 또는 false 값 지정 (기본 값 false).
        > deprecated in API Level 3.

numeric, password 속성과 마찬가지로 API Level 3에서 deprecated 되었습니다. 대신 "inputType" 속성 값에 "phone"을 지정하는 것으로 동일한 기능을 사용할 수 있습니다.


inputType="phone"

inputType에 대한 자세한 사용법은 [안드로이드 에디트텍스트 속성 5. [inputMethod, inputType]]에서 확인할 수 있습니다.

2.4 EditText가 Focus될 때, EditText의 모든 텍스트 자동 선택. (selectAllOnFocus)

EditText는 자신이 Focus되는 순간, 자신의 모든 텍스트를 선택 상태로 만드는 기능을 제공합니다. 즉, 다른 위젯에 Focus가 되어 있는 상태에서 EditText로 Focus가 이동되면, Focus가 이동된 EditText의 모든 텍스트가 자동으로 선택되도록 만드는 것입니다. 이를 위해 사용하는 속성은 "selectAllOnFocus" 입니다.

  * android:selectAllOnFocus - EditText가 Focus될 때, 자동으로 모든 텍스트 선택.
        > true 또는 false 값 지정 (기본 값 false).
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:selectAllOnFocus="false"
            android:text="selectAllOnFocus is FALSE" />

        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:selectAllOnFocus="true"
            android:text="selectAllOnFocus is TRUE" />

    </LinearLayout>

selectAllOnFocus 속성 예제


위의 속성 예제 실행 결과를 보면, selectAllOnFocus 속성이 false로 지정된 첫 번째 EditText가 Focus될 때 텍스트 선택은 되지 않고, 커서의 위치만 표시됩니다. 그리고 두 번째 EditText가 Focus되면, 두 번째 EditText의 모든 텍스트가 자동으로 선택되는 것을 확인할 수 있습니다.

2.5 EditText의 선택 텍스트 배경 색상 변경하기. (textColorHighlight)

EditText에 표시되는 텍스트 기본 색상은 [안드로이드 에디트텍스트 기본 사용법 - 2.6 EditText 텍스트 색상 변경]에서 본 것과 같이 "textColor" 속성으로 지정할 수 있습니다. 그렇다면 텍스트를 선택했을 때의 배경 색상은 어떻게 지정할 수 있을까요? 바로 "textColorHighlight" 속성을 사용하는 것입니다.

  * android:textColorHighlight - 선택 텍스트의 배경 색상 지정.
        > 컬러 값 지정. (#rgb, #argb, #rrggbb, #aarrggbb 등의 형식)

먼저 textColorHighlight 속성을 사용하지 않았을 때, 선택 텍스트의 배경 색상은 아래와 같습니다. (아래의 결과는 기기의 안드로이드 버전 및 테마에 따라 다르게 출력될 수 있습니다.)

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="This is textColorHighlight example." />

EditText의 텍스트 선택 기본 배경 색상


아래는 선택 텍스트의 배경 색상을 녹색(#00FF00)으로 지정한 예제입니다.

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColorHighlight="#00FF00"
        android:text="This is textColorHighlight example." />

textColorHighlight 사용 예제


3. 참고.

.END.


ANDROID 프로그래밍/EDITTEXT