안규 공부방

Android > resource - 배열 리소스 <string-array>

등록일 : 2017-07-05 16:54 조회수 : 93,871

배열 리소스는 보통 /res/values/arrays.xml 에서 관리한다.

arrays.xml 파일을 새로 만들고, 배열(string-array)을 등록하고 xml과 java에서 리소스를 호출하여 보자.

1. res(리소스)에 <string-array> 등록하기

/res/values 밑에 arrays.xml 파일을 새로 만든다.
 
	<?xml version="1.0" encoding="utf-8"?>
	<resources>

		<string-array name="company">
			<item>Samsung</item>
			<item>Hyundai</item>
			<item>LG</item>
			<item>SK</item>
			<item>KIA</item>
		</string-array>
	</resources>


- 배열(string-array)로 name을 company로 등록
- company 밑에 Samsung, Hyundai, LG, SK, KIA 를 속성으로 등록했다.

2. layout의 xml에서 배열 불러오기
 
	<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
		xmlns:tools="http://schemas.android.com/tools"
		android:layout_width="match_parent"
		android:layout_height="match_parent"
		android:paddingBottom="@dimen/activity_vertical_margin"
		android:paddingLeft="@dimen/activity_horizontal_margin"
		android:paddingRight="@dimen/activity_horizontal_margin"
		android:paddingTop="@dimen/activity_vertical_margin"
		tools:context=".MainActivity" >

		<ListView
			android:id="@+id/ListView1"
			android:layout_width="fill_parent"
			android:layout_height="wrap_content"
			android:entries="@array/company" />

	</RelativeLayout>


- <ListView> 를 사용하여 <string-array> 호출
- id : ListView1  ( android:id="@+id/ListView1" )
- 속성 : name이 company인 array ( android:entries="@array/company" )


실행화면을 보자!


- 리소스에 등록된 company의 item 들이 <ListView>형태로 출력됐다.

3. Activity.java 에서 <string-array> 리소스 불러오기
 
	public class MainActivity extends Activity {

		@Override	
		protected void onCreate(Bundle savedInstanceState) {
			super.onCreate(savedInstanceState);
			setContentView(R.layout.activity_main);

			// 리소스에서 name이 company인 array를 가져와서 String[] 배열에 대입
			String[] company = getResources().getStringArray(R.array.company);

			// company를 ArrayAdapter에 등록한다. 

			//(ListView는 Adapter를 통해서 등록한다.)
			// simple_list_item_1은 textview를 담고 있는 xml 형태이다.
			ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, company);


			// 리소스에서 id 가 ListView1 인 ListView를 가져온다.
			// ListView에 adapter를 등록한다.
			ListView listView1 = (ListView)findViewById(R.id.ListView1);
			listView1.setAdapter(adapter);
		}
	}
	


- getResource().getStringArray() 를 사용하여 리소스에서 company <string-array>를 배열 형태로 가져온다.
- ListView에는 ArrayAdapter 형태로 데이터를 대입해야하기에 ArrayAdapter<String>에 company를 등록한다.
- findViewById로 ListView1 을 가져온다.
- ListView1에 Adapter를 등록한다.



- ListView에 등록한 <string-array>를 그대로 등록했기에 결과는 같다.
 
※ 혹시 도움이 되셨다면 댓글에 한마디 남겨주세요!
작성자   비밀번호
자동글 방지     (자동글 방지 기능입니다.)
내용   댓글달기 
이메일 문의 : cak0280@nate.com  
Copyright 2000 By ENTERSOFT.KR All Rights Reserved.