G Y U L O G

텍스트 다루기

레이아웃 파일과 텍스트파일을 분리하면 다국어지원, 모듈화에 효율적이므로 분리하는 걸 디폴트로 설정한다.

 

string.xml파일을 사용하여 효율을 높여보자.

파일위치

처음 파일에 들어가면 앱 실행시 상단 바의 내용이 적혀있다.

<resources>
    <string name="app_name">Practice_SampleWidget</string>
</resources>

구조를 보면 아래와 같다.

<string name = "변수이름">텍스트</string>

이렇게 만들어진 텍스트는

 

text속성(Attribute - text)에서 @string/변수이름(따옴표 제거)로 참조한다.

 

@string의 의미는 string파일을 링크한다는 의미로 보면 될 것 같다.

 

폰트변경은 layout파일의 Attribute - textFace에서 바꾸면 된다. 나 같은 경우에는 티스토리 스킨편집을 하다보니 이 속성이 비교적 익숙했다.

 

버튼 다루기

Palette

텍스트 뷰를 상속하기 때문에 위에서 얘기한 속성들을 그대로 사용할 수 있다.

 

위에서 부터 차례대로 라디오 버튼, 체크박스다. 라디오버튼은 라디오그룹안에 묶여서 들어가며 한 항목에만 체크를 할 수 있어서 이미 체크가 되어있는 상태에서 다른 항목을 체크할 경우 체크표시가 옯겨간다.

 

체크박스는 그냥 평소에 쓰던 기능 그대로이다.

 

버튼을 사용할 때 가장 많이 사용하게될 메서드인 setOnClickListener()를 살펴보자

button.setOnClickListener(new View.OnClickListener(){
            public void onClick(View v){
                Toast.makeText(getApplicationContext(), "버튼",Toast.LENGTH_LONG).show();
            }
        });

작동확인을 위해서 토스트메시지 호출을 넣어놨다.

 

onCreate함수 안에서 기능하며 onCreate밖에서 호출불가하다.

 

setOnClickListener를 사용하면 xml파일에서 onClick 속성을 건드릴 필요가 없어진다.

 

new View.OnClickListener()

이 부분이 인자로 들어가는데 아직 이것에 대한 내용을 잘 알지못한다.

 

자동완성을 람다식 replace를 실행했더니

button.setOnClickListener(v -> Toast.makeText(getApplicationContext(), "버튼",Toast.LENGTH_LONG).show());

v ->로 onClick함수까지 대체됐다. 람다식의 변환과정이 궁금해진다.

 

입력상자 editText

<EditText
        android:id="@+id/userNameInput"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="@string/hint"
        android:inputType="text" />

입력 상자의 경우 android:hint 속성을 통해 텍스트 입력 전 표시할 내용을 기술 할 수 있다.

 

위젯은 PlainText이고 inputType으로 입력타입 설정하고 android:text = "입력내용"으로 입력받을 수 있다.

 

selectAllOnFocus

selectAllOnFocus 옵션을 켜두면 입력을 하려고 editText를 터치했을때 contents들이 전체선택된다. 커서이용의 다른 예이다.

 

TextChangedListener를 사용하면 현재입력하는 텍스트의 상태변화를 이용할 수 있다. 정확히는 TextWatcher 객체를 이용하는 건데 현재 글자 입력 수를 알 수 있다.

 

developer.android.com/reference/android/text/TextWatcher

 

TextWatcher  |  Android 개발자  |  Android Developers

 

developer.android.com

 

"댓글, 공감 버튼 한 번씩 누르고 가주시면 큰 힘이 됩니다"

공유하기

facebook twitter kakaoTalk kakaostory naver band