반응형
위와 같이 문자열 태그로 제목을 만들기 위해 다음과 같이 코드를 작성했다.
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);
반응형
'Android' 카테고리의 다른 글
[Android] ViewModel의 인스턴스 공유 문제 + hiltNavGraphViewModels (0) | 2024.07.08 |
---|---|
[Android] ViewPager2에 관련된 속성들 (0) | 2024.05.03 |
[Android] ViewPager2에 custom indicator 연결하기 (7) | 2024.03.18 |
[Android] ViewPager2 - Runnable 객체로 자동으로 이미지 slide 하기 (1) | 2024.03.17 |
[Android] View의 LifeCycle(생명주기) (0) | 2024.03.16 |