이번에는 TextView와 EditText 위젯에 대해 예제와 함께 알아 볼것이다.
이 예제는 김상형님께서 쓰신 안드로이드 프로그래밍 정복에서 발췌했다.
TextViewAttr.java
- public class TextViewAttr extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.widget_textviewattr);
}
}
위 코드는 Activity를 상속받은 TextViewAttr클래스를 선언했다. 그리고 onCreate 메서드로 액티비티를 초기화한다.
setContentView(widget_textviewattr.xml 파일을 파싱) 메서드로 Activity의 내용을 채운다.
모든 Layout, TextView, EditView는 widget_textviewattr.xml에 정의 되어있다. 고로 밑에 설명은 xml파일을 설명하겠다.

- <EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Normal" // 여러줄을 입력할 수 있고 가로크기를 넘어가면 자동으로 개행이 된다.
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Scroll Horizontal"
android:scrollHorizontally="true" // 여러줄을 입력할 수 있지만 가로크기를 넘어가면 스크롤된다.
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Single Line"
android:singleLine="true" // 한줄로만 입력할 수 있다.
/>
-
입력문자 제한

- <EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="aeiou"
android:digits="aeiou" // digits 속성에 문자열을 지정해 놓으면 해당 문자만 입력이 가능하다.
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="1234"
android:numeric="integer" // 아라비아 숫자만 입력가능하다.
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="-1234"
android:numeric="signed" // 맨 앞자리에만 '-' 부호를 입력할 수 있다.
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="12.34"
android:numeric="decimal" // 소수점을 허용하지만 반드시 하나만 와야한다.
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="-12.34"
android:numeric="decimal|signed" // 맨앞 부호와 유일한 소수점을 허용한다.
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="010-123-4567"
android:phoneNumber="true" // 전화번호 형식을 허용한다.
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="pass"
android:password="true" // 입력하면 비밀번호 형식으로 바뀐다.
/>
-
커서 및 포커스

- <EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="selectAllOnFocus"
android:selectAllOnFocus="true" // 해당 문자열 전체를 선택한다.
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Cursor Test - true"
android:cursorVisible = "true" // 선택시 커서를 보여준다. 포커스는 문자열의 맨 마지막이다.
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Cursor Test - false"
android:cursorVisible = "false" // 선택시 커서를 보여주지 않는다.
/>
-
EdirView의 강제 라인지정

- <EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="강제로 다섯줄을 차지한다.\n둘\n셋\n넷\n다섯"
android:lines="5" // 강제로 라인 수를 지정한다. 위에 그림처럼 한줄을 추가 하려고 하면 추가되어지지 않는다.
/>

-
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text=""
android:hint="input your name"
android:textColorHint = "#0000ff"
/>
안드로이드에서 힌트는 웹페이지에서 회원가입을 예를 들어 설명하겠다.(약간 다르지만)
회원가입을 할때 input 박스에 원하는 액션의 설명이 적혀져 있는 경우를 종종 볼것이다.
그리고 입력을 하려고 포커스를 두면 그 설명들이 없어진다.
안드로이드에서 힌트는 입력을 하는 순간 힌트가 없어진다.
이 글은 스프링노트에서 작성되었습니다.