Android

[Android] String Resources - <string-array>로 깔끔하게 관리하자

도우 2024. 4. 2. 14:45
반응형

RecyclerView로 구현된 메뉴 버튼들

 

위와 같이 문자열 태그로 제목을 만들기 위해 다음과 같이 코드를 작성했다.

    private List<TagMenuItem> createTagMenuItems2() {
        List<TagMenuItem> menuList = new ArrayList<>();
        menuList.add(new TagMenuItem("#로맨스"));
        menuList.add(new TagMenuItem("#드라마"));
        menuList.add(new TagMenuItem("#학원/액션"));
        menuList.add(new TagMenuItem("#옴니버스"));
        menuList.add(new TagMenuItem("#판타지/SF"));
        menuList.add(new TagMenuItem("#공포/스릴러"));
        menuList.add(new TagMenuItem("#개그"));
        menuList.add(new TagMenuItem("#무협"));
        return menuList;
    }

 

이처럼 하나씩 하드코딩된 코드는 길이도 길어질 뿐만 아니라 관리하기도 어렵다

따라서 res/values/strings.xml 파일에서 문자열 배열 ('string-array')를 사용하여 이 데이터들을 관리하여야 한다.
이 방법은 앱의 국제화 및 지역화를 지원하는 데 도움이 되며, 코드 내에 하드코딩된 문자열을 줄여 유지 보수에 용이하다.

 

이제 string-array로 작성 해보도록 하자.
getResources().getStringArray() 메소드를 통해 Java 파일에서 string-array를 가져올 수 있다.

String[] List = getResources().getStringArray(R.array.tag_menu_item_1)

 

// res/values/strings.xml

	<string-array name="tag_menu_items_2">
        <item>#로맨스</item>
        <item>#드라마</item>
        <item>#학원/액션</item>
        <item>#옴니버스</item>
        <item>#판타지/SF</item>
        <item>#공포/스릴러</item>
        <item>#개그</item>
        <item>#무협</item>
    </string-array>
// .java

	private List<TagMenuItem> createTagMenuItems2() {
        List<TagMenuItem> menuList = new ArrayList<>();
        
        // 반복문을 사용해서 string-array의 item 하나씩 가져오기
        for (String item : getResources().getStringArray(R.array.tag_menu_items_2)) {
            menuList.add(new TagMenuItem(item));
        }
        return menuList;
    }

 

 

 

단일 문자열일 경우 아래와 같이 사용할 수 있다.

String string = getString(R.string.hello);

 

반응형