개발 /우리 지금 만나
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 . 사용하고자 하는 리스트 이름) 해당 구조체 리스트에 접근할 수 있다.