■ はじめに
https://dk521123.hatenablog.com/entry/2013/10/04/234613
の続き。 今回は、長押しで表示されるメニューの 「2)コンテキストメニュー (Context menu)」を扱う。
【1】作成方法
[1-1] [app]を右クリックし、[New]-[Android Resource File]を選択 [1-2] 以下の様に入力し、「OK」ボタン押下 + File Name : (ここでは) context + Resource type : menu => app/res/menu/context.xmlが追加される [2-1] app/res/menu/context.xmlをダブルクリックし、「Menu Item」を追加する
デザイン例 / menu
+ contextItem1 + contextItem2
コード
MainActivity.kt
import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.view.ContextMenu import android.view.Menu import android.view.MenuItem import android.view.View import android.widget.Toast import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { private lateinit var realm: Realm override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // コンテキストメニューを追加したい対象のコンポーネント(今回は「textView」)を指定する registerForContextMenu(textView) } // ********** コンテキストメニュー ********** // コンテキストメニューの作成 override fun onCreateContextMenu(menu: ContextMenu?, v: View?, menuInfo: ContextMenu.ContextMenuInfo?) { super.onCreateContextMenu(menu, v, menuInfo) menuInflater.inflate(R.menu.context, menu) } // コンテキストメニューアイテムが選択された時に呼び出される override fun onContextItemSelected(item: MenuItem?): Boolean { when (item?.itemId) { R.id.contextItem1 -> { Toast.makeText(this, "contextItem1をクリック", Toast.LENGTH_SHORT).show() return true } R.id.contextItem2 -> { Toast.makeText(this, "contextItem2をクリック", Toast.LENGTH_SHORT).show() return true } } return super.onContextItemSelected(item) } }
関連記事
画面コンポーネント / Menu ~ オプションメニュー ~
https://dk521123.hatenablog.com/entry/2013/10/04/234613