Android

[Android, 안드로이드] resource xml폴더에 arrayList 생성 및 사용방법( array.xml파일 추가)

데이터를 처리하는 방법

데이터를 가져오는 방법 중에 DB서버에 접근해서 가져오는 방법이 있고, 두번째 방법은 블로그의 데이터를 크롤링하여 처리하는 방법이 있다. 이런 방법 외에 앱 내에 고정으로 사용해도 되는 데이터가 있을 때 활용하는 방법으로 xml파일을 만들고 그 안에 string-array를 사용하는 방법이다. 그렇게 어렵지 않다. 

res > values 폴더를 클릭 후 마우스 오른쪽 버트을 누르면 팝업메뉴가 나타난다.  New > Value Resource File 메뉴를 선택한다. 

New Resource File 생성 팝업이 나타난다. 여기서 File Name을 작성한다. 대문자는 지원하지 않으며 소문자만 입력 가능하다. 원하는 파일 이름 지정 후 OK버튼을 클릭하면 my_array.xml 파일이 생성된다.

[생성된 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

Leave a Reply

error: Content is protected !!