예제를 풀다보니 스피너나 메뉴 부분을 할 때는 arrays.xml을 사용하고 ListView나 Adapter에서는 내부 코드에서 ArrayList를 생성해 사용하게된다. 그래서 왜 이렇게 딱 구분해서 사용을 하는걸까 하고 의문을 가지고있었는데, java코드에서 xml 데이터의 조작이 어렵다는 것을 알게되었다. 물론 읽는 것은 가능하지만 xml데이터의 내용을 수정하거나 삭제하는 일은 할 수 없는 것이다. 그래서 동적인 화면을 구성할 때는 arrays.xml파일에 직접 접근하지 않고, 리소스파일을 코드 내의 배열에 옮겨와 작업을 해야한다. 아래는 그 방법이다.

Resources res = getResources();
String[] temp= res.getStringArray(R.array.colors);
arrays.xml에서 colors의 이름을 갖는 배열을 코드상의 temp배열에 옮긴 것이다. 이후 자유롭게 사용이 가능 하겠다.

+ Recent posts