Stringクラスの配列を使ったArrayAdapter

広告

Stringクラスの配列として用意されたデータを使ってArrayAdapterクラスのオブジェクトを作成する手順を見ていきます。

まずデータを用意します。今回はStringクラスのデータを扱いますのでStringクラスの配列を用意します。

String[] data = {"Apple", "Lemon", "Orange", "Strawberry"}; 

1番目の引数に表示するBitmapクラスのオブジェクトを指定します。(Bitmapクラスについては「Bitmapクラス」を参照して下さい)。

次にデータを表示する時に使用されるTextViewをレイアウトXMLファイルとして定義します。今回「Test02_01」と言うプロジェクトを作成し、プロジェクト内の「res/layout」内に「rowdata.xml」と言うファイルを作成しました。ファイルの中身は次のようなものです。

<?xml version="1.0" encoding="utf-8"?>
<TextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
/>

Stringクラスの配列を使ったArrayAdapter

これらを使って「ArrayAdapter」クラスのオブジェクトを作成します。

String[] data = {"Apple", "Lemon", "Orange", "Strawberry"}; 

ArrayAdapter<String> arrayAdapter
    = new ArrayAdapter<String>(this, R.layout.rowdata, data);

以上で「ArrayAdapter」クラスのオブジェクトが作成できました。

サンプルプログラム

それでは実際に試してみます。プロジェクトを作成しソースコードを次のように変更しました。

Test02_01.java

package jp.javadrive.android;

import android.app.Activity;
import android.os.Bundle;
import android.widget.LinearLayout;
import android.view.ViewGroup;
import android.widget.ListView;
import android.widget.ArrayAdapter;

public class Test02_01 extends Activity
{
    private final int FP = ViewGroup.LayoutParams.FILL_PARENT;
    private final int WC = ViewGroup.LayoutParams.WRAP_CONTENT;

    private String[] data = {"Apple", "Lemon", "Orange", "Strawberry"};

    @Override protected void onCreate(Bundle icicle) {
        super.onCreate(icicle);

        LinearLayout linearLayout = new LinearLayout(this);
        linearLayout.setOrientation(LinearLayout.HORIZONTAL);
        setContentView(linearLayout);

        ListView list  = new ListView(this);
        linearLayout.addView(list, createParam(WC, WC));

        ArrayAdapter<String> arrayAdapter
            = new ArrayAdapter<String>(this, R.layout.rowdata, data);

        list.setAdapter(arrayAdapter);
    }

    private LinearLayout.LayoutParams createParam(int w, int h){
        return new LinearLayout.LayoutParams(w, h);
    }
}

またレイアウトXMLファイルをリソースとしてプロジェクト内の「res/layout」ディレクトリに配置しました。

Stringクラスの配列を使ったArrayAdapter

ビルド後にエミュレーター上で実行します。

Stringクラスの配列を使ったArrayAdapter

今回は「ArrayAdapter」クラスのオブジェクトを使ってStringクラスのデータを「ListView」クラスへ渡しています。

( Written by Tatsuo Ikura )