Goodroid

GoodroidはAndroidアプリ開発のための情報をコラムやブログで紹介するサイトです。


長押ししたリストの場所を取得する
ここでは長押ししたリストの場所を取得する方法を確認していきます。

クリックした場所を取得するためには「 onItemLongClick 」メソッドを使います。
これにより、リストビューの選択された場所を取得でき、その選択項目別に処理を分けることも可能になります。サンプルでは長押ししたリスト名をトーストで表示しています。

Listview4Activity.java
package goodroid.sample.listview4;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class Listview4Activity extends Activity {
    /** Called when the activity is first created. */

  // リストビューに表示する配列データ
    String[] list = new String[]{
    		"list_01", "list_02", "list_03", "list_04", "list_05",
    		"list_06", "list_07", "list_08", "list_09", "list_10"
    };

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        // アダプタを用意して配列listを紐付けます。
        ListAdapter adapter = (ListAdapter)new ArrayAdapter<String>(
        		this, android.R.layout.simple_list_item_1, list);

        // main.xmlのListViewにlaをセットします。
        ListView lv = (ListView)findViewById(R.id.listview);

        // ListViewにアダプタを設定する。
        lv.setAdapter(adapter);

        // リストビューのアイテムが長押しされた時に呼び出す。
        lv.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
            public boolean onItemLongClick(AdapterView<?> parent, View view,
                    int position, long id) {

                // 長押しされたアイテムを取得する。
                String item = (String) parent.getItemAtPosition(position);

                // トーストで表示する
                Toast.makeText(Listview4Activity.this, item, Toast.LENGTH_LONG).show();

	    return false;
            }

        });
    }
}

main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <ListView
        android:id="@+id/listview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </ListView>

</LinearLayout>

実行結果


【関連記事】
配列のデータをリストビューに表示する
クリックしたリストの場所を取得する
折り畳み式リストビューを表示する

3528 views | コメント:0 | 2012-06-23
コメント
まだこの記事にコメントはありません
コメントの投稿
名前 (必須)

メールアドレス (非公開)

本文(必須)

パスワード (必須)
(半角数字4桁)