여러 개의 문자열을 찾아 텍스트뷰에 설정하기
참고 프로젝트: TextViewDemoC2
이전 예제에서는 여러 개의 리소스 아이디를 찾아와서 사용하는 방법을 살펴보았다. 이번에는 strings.xml에 저장되어 있는 문자열들을 읽어와서 한 개의 텍스트뷰에 설정하는 방법을 살펴보겠다.
먼저 레이아웃에 텍스트뷰를 한 개 선언한다.
코드 레이아웃 XML - /res/layout/main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
그리고 이 텍스트뷰에 보여줄 문자열을 작성한다. 이때 한 개의 텍스트뷰에 여러 개의 문자열을 보여줄 것이기 때문에 다음처럼 문자열을 여러 개 작성한다.
코드 문자열 XML - /res/values/strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">TextViewDemoC2</string>
<string name="str1">가</string>
<string name="str2">나</string>
<string name="str3">다</string>
<string name="str4">라</string>
<string name="str5">마</string>
<string name="str6">바</string>
</resources>
"app_name" 항목은 자동으로 생성된 것이고, 그 아래 "가", "나", "다", "라", "마", "바"는 이 예제를 위해 작성한 것이다.
코드 Main.java
package com.androidside.textviewdemoc2;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class Main extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String str = "";
for (int i = 1; i < 7; i++) {
int resID = getResources().getIdentifier("str" + i, "string",
"com.androidside.textviewdemoc2");
str += getString(resID);
}
((TextView) findViewById(R.id.text)).setText(str);
}
}
이 코드에서 가장 중요한 코드는 getString() 메소드이다. 이 메소드는 주어진 리소스 아이디를 가지고 문자열을 가지고 오는 메소드이다.