ListActivityを利用したリスト表示
今回は表示したリストビューをタッチした時のイベントを検出したいと思います
リストビューの選択を検出するには
OnItemClickListenerを使用します
これは指定したitemがクリックされたときに実行されるものでこれを
作成したリストビューに適用すれば、リストビューがクリックされた時に実行されます
また十字キーなどにより選択(セレクト)された時には
setOnItemSelectedListenerを使用します
今回はクリックやセレクトされたときにLogを出力するプログラムを作成してみます
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); ArrayAdapter初期画面は以前と変わりませんadapter = 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 item = (String) listView.getItemAtPosition(position); //Log出力 Log.v("tag", String.format("onItemClick: %s", item)); } }); //セレクトされたときに実行される lv.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { public void onItemSelected(AdapterView parent, View view, int position, long id) { //listViewを指定 ListView listView = (ListView) parent; //クリックされたものを取得 String item = (String) listView.getSelectedItem(); Log.v("tag", String.format("onItemSelected: %s", item)); } //何も選択さてないときに実行 public void onNothingSelected(AdapterView parent) { Log.v("tag", "onNothingSelected"); } }); } }
ためしにtest1をクリックしてみると・・・
Log“onItemClick:test1”が出力されます
次に下キーでtest1をセレクトするとします
すると・・・
Log“onItemSelicted:test1”が出力されます
スポンサードリンク
【ウィジェット リストビューの最新記事】