ごちゃごちゃまとまらないブログ

英語だったり数学だったりプログラミングだったり・・・。

【Javaメモ】xmlのリソースファイルから文字列を取得し動的にボタン作成

個人的なメモ。

 

res\values\strings.xmlには以下のように書いてあるとする。

<string-array name="titles">
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
<item>5</item>
<item>6</item>
<item>7</item>
<item>8</item>
<item>9</item>
<item>10</item>
<item>11</item>
<item>12</item>
<item>13</item>
<item>14</item>
<item>15</item>
<item>16</item>
<item>17</item>
<item>18</item>
<item>19</item>
<item>20</item>
</string-array>

これらをJAVAコードのほうで動的に受け取りボタンを作成する。

public class MainActivity extends Activity {
ScrollView scrollview;
int n;//ボタンの個数を格納する。
Button button[];

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
scrollview=new ScrollView(this);
LinearLayout layout=new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
scrollview.addView(layout);
setContentView(scrollview);//ここまででとりあえずスクロールビューにリニアレイアウトをセット

String[] titles={};//文字列の配列を受け取る用
titles=getResources().getStringArray(R.array.titles);//これでtitlesにxmlの内容を格納した

n=(int)titles.length;//配列の長さをnに入れる。(ボタンがn個必要)
button=new Button[n];//n個のボタンを作成
for(int i=0;i<n;i++){
button[i]=new Button(this);
button[i].setText(titles[i]);
//titles[i]にはxmlのi番目の文字列が格納されている。それをボタンにセットする。
layout.addView(button[i]);
}

}
}

こんな感じでしょうか。