2012年04月25日

リストビューを作成する(2)


ListActivityを利用したリスト表示
前回はArrayAdapterクラスを使用したリスト表示を行いました
リストビューを作成する
今回はListActivityクラスを使用しリストを作成してみたいと思います
ListActivityはリスト表示専用のアクティビティクラスです
新たにListViewウィジェットを作成して、アクティビティに配置する必要がありません
ListViewオブジェクトにAdapterを指定するには
setAdapterの代わりにsetListAdapterを使います
前回と同様のものをListActivityを使って書き直してみます
MainActivity.java
package blog.test;
 
import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
 
public class MainActivity extends ListActivity {
    private String[] mStrings = { "test1", "test2", "test3", "test4" };
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
        ArrayAdapter adapter = new ArrayAdapter(this,
        		android.R.layout.simple_list_item_1, mStrings);
        setListAdapter(adapter);

    }
}
前回よりシンプルな構成になっています


ListActivityにレイアウトファイルを指定する
ListActivityも通常のアクティビティの同様レイアウトファイルを指定する事ができます
ですがListActivityの場合はレイアウトファイルのListViewのIDに
固定のID“android:list”を指定しなければなりません

ですが逆に、リストの表示項目が無い場合に
リストのかわりにメッセージを自動的に表示させる事が可能です
その場合は固定のID“android:empty”を指定し
何もない場合の表示を設定することができます

前回作成したlist.xmlを以下のように変更します
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<ListView
    android:id="@+id/android:list"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    />
<TextView
    android:id="@+id/android:empty"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="リストにはなにもありません"
    />
</LinearLayout>
ID:listとID:emptyを使用しています

次にMainActivity.javaを変更します
package blog.test;
 
import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
 
public class MainActivity extends ListActivity {
    private String[] mStrings = { "test1", "test2", "test3", "test4" };
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
        setContentView(R.layout.list);
        
        ArrayAdapter adapter = new ArrayAdapter(this,
        android.R.layout.simple_list_item_1, mStrings);
        setListAdapter(adapter);

    }
}
これを実行すると前回同様test1〜4まで表示されます
device92.png

ためしにmStringのデータを空にしてみます
private String[] mStrings = {  };
に変更すると・・・
device93.png
表示が変化します
スポンサードリンク

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

メールアドレス:

ホームページアドレス:

コメント:

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


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

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

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