MobileApp > Android > GUI部品 > リストビュー
extends を Activityでなく、"ListActivity"にしている事に注意
package com.test12; import android.app.Activity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.app.ListActivity; public class test12 extends ListActivity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { //これ無いと落ちる. なんで? super.onCreate(savedInstanceState); //Menu項目をセットする String[] items = {"メニュー1","メニュー2","メニュー3"}; setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, items)); } }
simple_list_item_1.xml は SDK に ListViewの標準フォーマットとして元々入っている。
sdk\platforms\android-1.6\data\res\layout に配置されている。
simple_list_item_1.xml <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/text1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:gravity="center_vertical" android:paddingLeft="6dip" android:minHeight="?android:attr/listPreferredItemHeight" />
package com.chinsansoft; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.AdapterView; import android.widget.TextView; public class test07 extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ArrayAdapter<Dish> adapter = new ArrayAdapter<Dish>(this, android.R.layout.simple_list_item_1); adapter.add(new Dish("あいうえお", 100)); adapter.add(new Dish("かきくけこ", 200)); adapter.add(new Dish("さしすせそ", 300)); adapter.add(new Dish("たちつてと", 400)); final ListView listview = (ListView) findViewById(R.id.ListView01); listview.setAdapter(adapter); } } class Dish { String name; int price; Dish(String aname, int aprice) { name = aname; price = aprice; } public String toString() { return name + "(" + price + "円)"; } public String getName() { return name; } public int getPrice() { return price; } }
main.xml <?xml version="1.0" encoding="utf-8"?> <ListView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/ListView01" android:layout_width="fill_parent" android:layout_height="fill_parent"> </ListView>
OnItemClickListener は List のアイテムがクリックされたときに Callされる
OnItemSelectedListener は十字キー等により List のアイテムのフォーカスが移動したときに呼び出される