안드로이드 에디트텍스트 기본 사용법. (Android EditText)

2016. 5. 23. 13:44


1. 안드로이드 EditText

EditText는 사용자가 텍스트를 입력할 수 있는 기능을 제공하는 View 위젯입니다. [텍스트뷰 기본 사용법]에서 살펴봤던 TextView는 단순히 텍스트를 출력하는 기능을 제공하지만, EditText는 거기에 더해 입력 기능까지 제공합니다.


EditText가 TextView의 기능을 기본적으로 제공하므로, 당연하게도 EditText의 부모는 TextView입니다.


안드로이드 에디트텍스트



EditText는 "텍스트 입력"이라는, 어찌보면 매우 단순한 기능을 갖고 있지만, TextView로부터 상속받은 다양한 속성을 통해 여러 가지 유용한 기능들을 제공합니다. 텍스트 입력을 위한 소프트 키보드를 바꾸거나, 숫자만 입력 가능하도록 만드는 것과 같은 기능이 대표적이죠.


일단, 사용자로부터 텍스트를 입력받는 기능이 필요한 곳에서는 EditText가 기본적으로 사용되기 때문에, EditText의 기본 사용법은 필수적으로 익혀두는 것이 좋습니다.


지금부터 EditText의 사용법에 대해 알아보겠습니다.


2. EditText 기본 사용법.

EditText를 사용하는 기본적인 방법은 TextView를 사용하는 것과 크게 다르지 않습니다. 텍스트 입력을 위한 인터페이스는 안드로이드에서 기본적으로 제공하기 때문에, 개발자가 할 일은 입력된 텍스트를 얻어오거나, EditText에 출력하고자 하는 텍스트를 출력하기만 하면 됩니다.


2.1 EditText를 화면에 표시하기

EditText를 화면에 표시하기 위해 Layout 리소스 XML에 EditText를 추가합니다.

[STEP-1] "activity_main.xml" - Layout 리소스 XML에 EditText 추가.
    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/editText1" />

여기까지 작성하고 앱을 실행하면 EditText가 화면에 출력됩니다. 그 다음, EditText 영역을 터치하면 텍스트 입력기(IME)가 실행되며, 텍스트를 입력하면 EditText의 내용이 입력한 텍스트로 갱신됩니다.


안드로이드 에디트텍스트 표시



2.2 기본 출력 텍스트 지정

TextView 예제와 마찬가지로 EditText에 기본적으로 출력될 텍스트를 지정하기 위해서는 "text" 속성을 사용합니다.

[STEP-2] "activity_main.xml" - EditText에 표시될 기본 문자열 지정
    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/editText1"
        android:text="TEXT1" />

안드로이드 에디트텍스트 텍스트


2.3 Java 소스에서 EditText의 텍스트 변경

앱 실행 중 EditText의 텍스트를 변경하려면 Layout 리소스 XML에 추가한 EditText의 id를 이용하여 참조를 획득한 다음, setText() 함수를 호출하면 됩니다.

[STEP-3] "MainActivity.java" - onCreate() 함수에서 EditText의 텍스트 변경
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // ... 코드 계속
        EditText editText1 = (EditText) findViewById(R.id.editText1) ;
        editText1.setText("The text of EditText is changed.") ;
    }
}

안드로이드 에디트텍스트 텍스트 변경


2.4 EditText의 텍스트 가져오기

텍스트 입력기(IME)를 통해 입력된 텍스트는 앱 실행 중 언제든지 가져와서 사용할 수 있습니다. 텍스트를 변경하는 과정과 마찬가지로 id를 이용하여 참조를 획득한 다음, getText() 함수를 호출합니다.


그런데 한가지 주의할 사항이 있습니다. getText() 함수가 리턴하는 타입에 관한 것인데, EditText의 getText() 함수는 String 클래스 타입을 리턴하지 않고, Editable 인터페이스 타입을 리턴합니다. 그래서 String 타입으로 텍스트를 사용하고자 한다면, Editable 인터페이스가 제공하는 toString() 함수를 호출하여 String 타입으로 변환해야 합니다.

[STEP-4] "MainActivity.java" - EditText의 텍스트를 String 타입으로 가져오기
      EditText editText1 = (EditText) findViewById(R.id.editText1) ;
      String strText = editText1.getText().toString() ;

2.5 EditText 텍스트 크기 변경

EditText의 텍스트 크기를 변경하려면 TextView와 마찬가지로 "textSize" 속성을 사용합니다.

[STEP-5] "activity_main.xml" - EditText의 텍스트 크기 변경
    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/editText1"
        android:text="TEXT1 - 30sp"
        android:textSize="30sp" />

안드로이드 에디트텍스트 글자 크기


2.6 EditText 텍스트 색상 변경

EditText의 텍스트 색상을 변경하기 위해 TextView와 마찬가지로 "textColor" 속성을 사용합니다.

[STEP-5] "activity_main.xml" - EditText의 텍스트 색상 변경
    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/editText1"
        android:text="TEXT1"
        android:textColor="#FF0000" />

"#FF0000"은 RGB 순에 따라 빨간색으로 표시되며, 출력 결과는 아래와 같습니다.


안드로이드 에디트텍스트 글자 색상


3. 참고

.END.


ANDROID 프로그래밍/EDITTEXT