본문 바로가기
안드로이드 자바

[JAVA][Android]<string> 태그 활용하기

by teamnova 2024. 6. 8.
728x90

오늘은 <string> 태그를 활용해 문자열을 나타내는 예시를 보여드리겠습니다.

 

<string> 태그를 활용하면 동일한 문자열을 여러 파일들에서 재사용할 수있고 문자열 리소스가 코드와 분리되어 <string> 태그의 값만 바꿔 여러곳의 코드 수정없이 문자열을 변경할 수있습니다.

 

 

구조

<resources></resources>: <string>, <color>, <bol>, <style> 등 여러 리소스의 root 요소를 뜻하는 태그입니다.  <string> 태그는 무조건 <resources></resources> 사이에 넣어야만 합니다.

 

<string></string>: 안드로이드 xml 파일에서 단일 문자열 리소스임을 나타내는 태그입니다. 태그 사이에 보여주고자하는 문자열 값을 넣습니다.

 

name: 문자열 리소스 의  식별자입니다.name의 우측에 고유이름값을 정의하면 해당 이름으로 문자열들을 불러올 수 있습니다.

 

<string></string> 사이 문자열 값: name 식별자에 대응되는 실제 문자열 값입니다. 문자열 서식 과 굵은 글씨, 글 기울임, 서체 등 여러 스타일 지정도 가능합니다.

 

 

 

사용 예시

레이아웃 xml 파일 코드(activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/TextView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="50dp"/>

    <TextView
        android:id="@+id/TextView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/text_example2"
        android:layout_below="@id/TextView1"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="50dp"/>

    <TextView
        android:id="@+id/TextView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/TextView2"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="50dp"/>

    <TextView
        android:id="@+id/TextView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/TextView3"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="50dp"/>
</RelativeLayout>

 

 

액티비티 자바 코드

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);



        // 코드상에서 문자열 리소스를 설정
        TextView textView1 = findViewById(R.id.TextView1);
        textView1.setText(R.string.text_example1);



        // xml상에서 문자열 리소스를 설정함
        TextView textView2 = findViewById(R.id.TextView2);



        // 서식 문자열 리소스를 설정
        TextView textView3 = findViewById(R.id.TextView3);

        // =>서식 문자열에 넣을 값 정하기
        String value1 = "Alice";
        int value2 = 5;

        // =>text_example3 문자열 서식에 위의 값을 넣어 문자열 완성하기
        String full_text = getString(R.string.text_example3, value1, value2);

        // =>완성한 문자열 설정하기
        textView3.setText(full_text);



        //굵은 글씨, 밑줄 넣기를 일부분 처리한 문자열 리소스를 뷰에 설정
        TextView textView4 = findViewById(R.id.TextView4);
        textView4.setText(R.string.text_example4);

    }
}

 

strings.xml 파일 코드

<resources>
    <string name="app_name">string_tag_example(이건 앱이름이라 각자 다를것임)</string>
    <string name="text_example1">java 코드를 활용해 가져온 텍스트입니다</string>
    <string name="text_example2">텍스트뷰의 속성에 적어 가져온 텍스트입니다</string>
    <string name="text_example3">서식 문자열에 %1$s 와 %2$d 값을 적은 텍스트입니다</string>
    <string name="text_example4">문자열 일부분에 <b>볼드 처리</b>와 <u>밑줄 처리</u>를 한 텍스트입니다</string>
</resources>

 

 

실행 결과 이미지

 

<string> 태그의 서식과 스타일 관련 더 자세한 정보를 알고 싶다면 아래 링크의 공식홈페이지 설명을 참고해주세요.

https://developer.android.com/guide/topics/resources/string-resource#FormattingAndStyling