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
'안드로이드 자바' 카테고리의 다른 글
[JAVA][Android]이미지 확대, 축소 기능 구현하기 (2) | 2024.06.14 |
---|---|
[JAVA][Android] TedImagePicker 라이브러리로 이미지 1개 가져오기 (0) | 2024.06.11 |
[JAVA][Android]textwatcher 활용해 글 변경 반응하기 (0) | 2024.06.04 |
[JAVA][Android] ChatGPT API로 챗봇 만들기 - (3) Retrofit2 사용해서 챗봇에게 응답받기 (2) | 2024.06.03 |
[JAVA][Android] 네이버 회원 프로필 조회 API 사용하기 (2) | 2024.06.02 |