クリックしたリストの内容をテキストボックスに表示します
res/layout/main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ListView android:id="@+id/listview" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <!--選択されたitemの内容を表示 --> <TextView android:id="@+id/selecteditem" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout>
src/ListViewActivity.java
package jp.end0tknr.listview; 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 ListViewActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // 「simple_list_item_1」は、予め用意されているListViewのレイアウトの一つ. // 他のレイアウトの名称は次のurlに一覧がありますが、表示例がないので、いまいち // http://developer.android.com/reference/android/R.layout.html ArrayAdapter<Dish> adapter = new ArrayAdapter<Dish>(this, android.R.layout.simple_list_item_1); adapter.add(new Dish("焼きそば", 480)); adapter.add(new Dish("カツ丼", 540)); adapter.add(new Dish("カレーうどん", 460)); adapter.add(new Dish("オムライス", 520)); final ListView listview = (ListView) findViewById(R.id.listview); listview.setAdapter(adapter); listview.setOnItemClickListener( new AdapterView.OnItemClickListener() { // http://developer.android.com/reference/android/widget/AdapterView.OnItemClickListener.html //@Override public void onItemClick( AdapterView<?> parent, //eventを発生させたListView View view, int position, long id) { setSelectedItem(parent, position); } }); } private void setSelectedItem(AdapterView<?> parent, int position) { Dish dish = (Dish) parent.getAdapter().getItem(position); final TextView selecteditem = (TextView) findViewById(R.id.selecteditem); selecteditem.setText( "オーダー= " + dish.getName() + "\n" + "金額= " + dish.getPrice() + "円"); } } 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; } }