2012年04月23日

リストビューを作成する


リストビュー(ListView)は複数の項目を一覧表示するためのものです
一覧表示するにはウィジェットであるListViewクラスを使う方法と
リスト表示専用のアクティビティ、ListActivityクラスを使う方法があります
リスト表示はAdapterクラスと組み合わせて使う事ができ
いろいろなAdapterクラスとの組み合わせによりさまざまな表現方法があります

基本形とArrayAdapterクラス
ArrayAdapterを使った簡単なサンプルです
表示するリストは { "test1", "test2", "test3", "test4" }としています
MainActivity.java
package blog.test;
 
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
 
public class MainActivity extends Activity {
    private String[] mStrings = { "test1", "test2", "test3", "test4" };
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
        ListView lv = new ListView(this);
        setContentView(lv);
 
        ArrayAdapter adapter = new ArrayAdapter(this,
                android.R.layout.simple_list_item_1, mStrings);
        lv.setAdapter(adapter);
    }
}
最初にmStringsで表示させる文字列を指定しています
次にListViewを新規に作成し、setContentViewで表示させます
ArrayAdapterで表示する文字列とレイアウトを指定しsetAdapterでlvと結びつけています
ちなみにandroid.R.layout.simple_list_item_1はandroidにもともと用意されている定義済みのレイアウトファイルのIDです
実行結果は次のようになります
device92.png

レイアウトファイルを独自設定する
ArrayAdapterの第2引数で指定しているレイアウトファイルには
独自に作成したレイアウトファイルを指定する事ができます
res/layoutを右クリックしxmlファイルを新規作成します
list.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content">
</TextView>
次にMainActivityを以下のように変更します
package blog.test;
 
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
 
public class MainActivity extends Activity {
    private String[] mStrings = { "test1", "test2", "test3", "test4" };
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
        ListView lv = new ListView(this);
        setContentView(lv);
 
        ArrayAdapter adapter = new ArrayAdapter(this,
                R.layout.list, mStrings);
        lv.setAdapter(adapter);
lv.setSelection(1);
lv.setTextFilterEnabled(true);
    }
}
これで先ほどと同様の実行結果を得られます
スポンサードリンク

この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/266299255
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。