package com.example.android.recipe041; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.AdapterView; import android.widget.ListView; import android.widget.TextView; public class Recipe041 extends Activity { private static final String TAG = "Recipe041"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // アイコン画像を生成 Bitmap defaultImage; defaultImage = BitmapFactory.decodeResource( getResources(), R.drawable.default_image); // テストデータを作成 List<ListItem> list = new ArrayList<ListItem>(); ListItem item1 = new ListItem(); item1.image = defaultImage; item1.name = "gabu"; item1.comment = "検索なら http://google.com/ がオススメ。"; list.add(item1); ListItem item2 = new ListItem(); item2.image = defaultImage; item2.name = "gabu"; item2.comment = "連絡先は tsukada.shouya@gmail.com です!"; list.add(item2); ListItem item3 = new ListItem(); item3.image = defaultImage; item3.name = "gabu"; item3.comment = "電話 090-9999-9999"; list.add(item3); ListItem item4 = new ListItem(); item4.image = defaultImage; item4.name = "gabu"; item4.comment = "Address: 620 Eighth Avenue New York, NY 10018"; list.add(item4); ListItem item5 = new ListItem(); item5.image = defaultImage; item5.name = "gabu"; item5.comment = "日本表記だと?住所: 〒460-0031 愛知県名古屋市中区本丸1−1"; list.add(item5); // ListItemAdapterを生成 ListItemAdapter adapter; adapter = new ListItemAdapter(this, 0, list); // ListViewにListItemAdapterをセット ListView listView = (ListView) findViewById(R.id.ListView01); listView.setAdapter(adapter); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View view, int position, long id) { ListView listView = (ListView) parent; // ListItem item = (ListItem)listView.getSelectedItem(); // itemがnull ListItem item = (ListItem)listView.getItemAtPosition(position); Log.d(TAG, "選択されたアイテムのcomment=" + item.comment); TextView textView = (TextView)view.findViewById(R.id.name); Log.d(TAG, "選択されたViewのTextView(name)のtext=" + textView.getText()); } }); listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { Log.d(TAG, "onItemLongClick position=" + position); // ちなみに、falseを返すとイベントが継続するのでonItemClickも呼び出されます。 return true; } }); } }