2012年04月26日

onItemClickの引数


前回、リストビューのイベント取得において
setOnItemClickListenersetOnItemSelectedListeneを使用しました

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);

        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 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をクリックしてみると・・・
device97.png
parentはListViewが、positionは0が(1番目-1)、idも0が(1番目-1)が
それぞれLogとして出力されます

同様に下ボタンでtest1をセレクトすると
device95.png

device98.png
こちらも同様にparentはListViewが、positionは0が(1番目-1)、idも0が(1番目-1)が
Logとして出力されます

スポンサードリンク

この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/267057021
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。