前回は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これを実行すると前回同様test1〜4まで表示されますadapter = new ArrayAdapter (this, android.R.layout.simple_list_item_1, mStrings); setListAdapter(adapter); } }

ためしにmStringのデータを空にしてみます
private String[] mStrings = { };に変更すると・・・

表示が変化します
スポンサードリンク
【ウィジェット リストビューの最新記事】