AdapterView.OnItemClickListener & OnItemLongClickListener
OnClickListener や OnLongClickListener は、View クラスであるが、
これらは、AdapterView クラス。
OnClickListener や OnLongClickListener は、View そのものをクリックしたときのイベント。
Button や TextView をクリック。
OnItemClickListener や OnItemLongClickListener は、View の中のアイテムをクリックしたときのイベント。
ListView の中の TextView をクリック。
abstract void | onItemClick(AdapterView> parent, View view, int position, long id)
Android Developers:OnItemClickListener
第1引数:クリックされた View の親 View
第2引数:クリックされた View
第3引数:リストにおけるクリックされた View の場所?
第4引数:クリックされた行番号。0 スタート
[android]import android.app.Activity;
import android.widget.AdapterView;
import android.widget.ListView;
public class OnItemClickListenerTest extends Activity implements AdapterView.OnItemClickListener {
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
ListView listView = new ListView(this);
listView setOnItemClickListener(this); //リスト項目をタップしたときのリスナー
}
//ListView タップ処理
@Override
public void onItemClick(AdapterView> parent, View view, int position, long id) {
ListView listView = (ListView) parent;
String name = (String) listView.getItemAtPosition(position);
// 処理
}
}[/android]
abstract boolean | onItemLongClick(AdapterView> parent, View view, int position, long id)
Android Developers:OnItemLongClickListener
戻り値:bool 。不明。
第1引数:クリックされた View の親 View
第2引数:クリックされた View
第3引数:リストにおけるクリックされた View の場所?
第4引数:クリックされた行番号。0 スタート
[android]import android.app.Activity;
import android.widget.AdapterView;
import android.widget.ListView;
public class OnItemLongClickListenerTest extends Activity implements AdapterView.OnItemLongClickListener{
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
ListView listView = new ListView(this);
listView OnItemLongClickListener(this); //リスト項目をタップしたときのリスナー
}
//ListView ロングタップ処理
@Override
public void onItemLongClick(AdapterView> parent, View view, int position, long id) {
ListView listView = (ListView) parent;
String name = (String) listView.getItemAtPosition(position);
// 処理
return false; /* ここが OnItemClickListener と異なる */
}
}[/android]
戻り値はよくわからないので、ひとまず false にしてしまった・・・。