Hoon222y

Android App For Mac 제작 (7) - Class 간 구조체 리스트 공유 본문

개발 /우리 지금 만나

Android App For Mac 제작 (7) - Class 간 구조체 리스트 공유

hoon222y 2017. 12. 1. 13:55

 어플을 제작하면서 서로 다른 Class사이에서 구조체 리스트를 공유하여 사용해야하는 일이 생겼다. 갓 투리님의 은총으로 간단하게 해결하였다. 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
    public static class posLocation implements Serializable{
        Float firstPos;
        Float secondPos;
        public posLocation(Float first, Float second) {
            firstPos = first;     //받아온 위치들을 구조체로 만든다
            secondPos = second;
        }
    }
 
    // 좌표 저장을 위한 pos 배열로서 위도와 경도를 저장하기 위해 전역 변수로 선언
    // static을 쓰면 이 프로그램 안에서 유일하다 이 이름을 쓰는애가 그래서 다른 class내에서 그냥 사용이가능하다
    // FindLocation.posArrayLoc 이런 형식으로 사용가능 (전역변수의 개념)
 
    static ArrayList<posLocation> posArrayLoc = new ArrayList<posLocation>();
cs


이런식으로 구조체를 선언하고 핵심은 14번째 줄에서 리스트를 Stasic으로 선언한 것이다. 주석으로 설명을 간단히 한것처럼 Static으로 선언함을 통하여 해당 프로젝트에서 posArrayLoc이라는 리스트 배열은 이것이 유일하다라고 말해주고 다른곳에서 사용할 수 있게 하는것이다. 이렇게 선언을 한 뒤 다른 Class에서 사용을 하기 위해서 


1
2
3
/* 입력된 좌표를 저장해 두기 위함 pos 구조체를 만들고 배열에 추가  */
FindLocation.posLocation getPos = new FindLocation.posLocation((float)mapPointGeo.latitude,(float)mapPointGeo.longitude);
FindLocation.posArrayLoc.add(getPos);
cs


이런식으로 다른 Class에서 FindLocation.PosArrayLoc 이라고 부르면서 (배열이 정의된 Class . 사용하고자 하는 리스트 이) 해당 구조체 리스트에 접근할 수 있다. 

Comments