[Android, 안드로이드] resource xml폴더에 arrayList 생성 및 사용방법( array.xml파일 추가)
데이터를 처리하는 방법
데이터를 가져오는 방법 중에 DB서버에 접근해서 가져오는 방법이 있고, 두번째 방법은 블로그의 데이터를 크롤링하여 처리하는 방법이 있다. 이런 방법 외에 앱 내에 고정으로 사용해도 되는 데이터가 있을 때 활용하는 방법으로 xml파일을 만들고 그 안에 string-array를 사용하는 방법이다. 그렇게 어렵지 않다.
res > values 폴더를 클릭 후 마우스 오른쪽 버트을 누르면 팝업메뉴가 나타난다. New > Value Resource File 메뉴를 선택한다.
![](https://playground.naragara.com/wp-content/uploads/2023/07/image-167-1000x1024.png)
New Resource File 생성 팝업이 나타난다. 여기서 File Name을 작성한다. 대문자는 지원하지 않으며 소문자만 입력 가능하다. 원하는 파일 이름 지정 후 OK버튼을 클릭하면 my_array.xml 파일이 생성된다.
![](https://playground.naragara.com/wp-content/uploads/2023/07/image-168-1024x595.png)
[생성된 my_array.xml]
<?xml version="1.0" encoding="utf-8"?> <resources></resources>
resources태그 안에서 작업을 하면 된다. <string-array>태그를 사용하여 배열 이름을 지정해주고, item 태그를 사용하여 데이터를 추가한다.
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="special_spot"> <item>49.2459918,-122.5442593</item> <item>49.3064387,-123.0020362</item> <item>51.1791155,-115.6099708</item> <item>51.1841171,-115.5847927</item> <item>51.1719064,-115.4693033</item> <item>51.180894, -115.583712</item> </string-array> </resources>
위경도 값으로 데이터를 추가하였다. 준비는 완료되었다. 이제 백앤드에서 불러와보자.
String[] myLoc = getResources().getStringArray(R.array.special_spot); //리스트로 변경해도 되며, 상황에 맞게 사용 //List<String> resArrLst = Arrays.asList(myLoc); if(!(myLoc!= null && myLoc.length > 0)) return; for(int i=0; i<myLoc.length;i++){ String[] tempArr = myLoc[i].split(","); InfoVo vo = new BearInfoVo(Double.parseDouble(tempArr[1]), Double.parseDouble(tempArr[0])); MarkerOptions marker = new MarkerOptions(); }
Resources 를 반환하는 getResources() 메소드를 사용하여 xml 파일에 접근할 수 있다. 접근시 배열이름으로 지정해줬던 “special_spot”로 접근하면 된다.
public class InfoVo { double latitude; double longitude; public InfoVo( double _longitude, double _latitude){ this.longitude = _longitude; this.latitude = _latitude; } @Override public String toString() { return "InfoVo [ longitude=" + longitude + ", latitude=" + latitude + "]"; } public double getLatitude() { return latitude; } public void setLatitude(double latitude) { this.latitude = latitude; } public double getLongitude() { return longitude; } public void setLongitude(double longitude) { this.longitude = longitude; } }
[관련 정보]
Android 개발자 > 문서 > 가이드 : 문자열 리소스문자열 리소스 | Android 개발자 | Android Developers문자열 리소스는 옵션 사항인 텍스트 스타일 지정 및 서식 지정 기능과 함께 애플리케이션에 사용할 수 있는 텍스트 문자열을 제공합니다. 애플리케이션에 문자열을 제공할 수 있는 리소스 유��developer.android.com