setOnItemClickListenerやsetOnItemSelectedListeneを使用しました
ListViewのクリック
指定したリストビューのitemを取得するのにonItemClickが使用されています
今回はこのonItemClickをもう少し詳しく見ていきたいと思います
onItemClick(AdapterView parent, View view,int position, long id)parent:クリックされたAdapterのビューとなる
view:実際にクリックされたビュー
position:アダプターの何番目がクリックされたか
id:クリックされた列のid
前回のプログラムを以下のように変更して何が取得されているのかを詳しく見たいと思います
MainActivity.java
package blog.test; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; public class MainActivity extends Activity { private String[] mStrings ={ "test1", "test2", "test3", "test4" }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //リストビューを作成 ListView lv = new ListView(this); setContentView(lv); ArrayAdapteradapter = new ArrayAdapter (this, android.R.layout.simple_list_item_1, mStrings); lv.setAdapter(adapter); //クリックイベントを検出 lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView parent, View view, int position, long id) { //listViewを指定 //ListView listView = (ListView) parent; //クリックされたものを取得 String get_parent = (String) parent.getClass().getSimpleName(); String get_position = String.valueOf(position); String get_id = String.valueOf(id); //Log出力 Log.v("tag", String.format("onItemClick: %s", get_parent)); Log.v("tag", String.format("onItemClick: %s", get_position)); Log.v("tag", String.format("onItemClick: %s", get_id)); } }); //セレクトされたときに実行される lv.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { public void onItemSelected(AdapterView parent, View view, int position, long id) { //listViewを指定 //ListView listView = (ListView) parent; //クリックされたものを取得 String get_parent = (String) parent.getClass().getSimpleName(); String get_position = String.valueOf(position); String get_id = String.valueOf(id); //Log出力 Log.v("tag", String.format("onItemClick: %s", get_parent)); Log.v("tag", String.format("onItemClick: %s", get_position)); Log.v("tag", String.format("onItemClick: %s", get_id)); } //何も選択さてないときに実行 public void onNothingSelected(AdapterView parent) { Log.v("tag", "onNothingSelected"); } }); } }
ためしにtest1をクリックしてみると・・・

parentはListViewが、positionは0が(1番目-1)、idも0が(1番目-1)が
それぞれLogとして出力されます
同様に下ボタンでtest1をセレクトすると


こちらも同様にparentはListViewが、positionは0が(1番目-1)、idも0が(1番目-1)が
Logとして出力されます
スポンサードリンク