【Kotlin】ListView長押しでコンテキストメニューを表示する

AndroidのListViewの各行を長押しでメニューを出す方法です。

コンテキストメニューにListViewを登録します。

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
             
        registerForContextMenu(myListView)

    }

メニューに削除を追加します。

    override fun onCreateContextMenu(
        menu: ContextMenu?,
        v: View?,
        menuInfo: ContextMenu.ContextMenuInfo?
    ) {
        super.onCreateContextMenu(menu, v, menuInfo)

        //削除メニューを追加。
        menu?.add("削除")

    }

選択時の処理を記載します。

    override fun onContextItemSelected(item: MenuItem): Boolean {
        super.onContextItemSelected(item)

        val info = item.menuInfo as AdapterView.AdapterContextMenuInfo

        if(item.title == "削除"){
            //ListViewのIDを取得できる。このIDをもとに削除を行う。
            Log.v("a",info.id.toString())
        }
        return true
    }

 

ABOUTこの記事をかいた人

個人アプリ開発者。Python、Swift、Unityのことを発信します。月間2.5万PVブログ運営。 Twitter:@yamagablog