OptionMenuを表示させるAndroidサンプルアプリです!
※はじめに
この記事はAndroidアプリの開発が、初心者であるという方のための記事です。
そのため、なるべく複雑な説明は避け、コピー&ペイストですぐに動くものをご紹介します。
JavaやAndroidを理解されている方で細かい説明が必要な方は、当ブログ内の連載記事である「Android Tips」をご覧ください。
Androidのコンテキストメニューで、選択された項目をToastを使って表示します。
アプリ完成図
MainActivity.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | package com.example.contextmenu; import android.app.Activity; import android.os.Bundle; import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; import android.view.MenuItem; import android.view.View; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView textView = (TextView) findViewById(R.id.textView1); // コンテキストメニューを出すための、長押しの対象となるウィジェットをセット registerForContextMenu(textView); } // コンテキストメニューを生成 @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { menu.add( 0 , 0 , 0 , "メニュー1" ); menu.add( 0 , 10 , 1 , "メニュー2" ); menu.add( 0 , 20 , 2 , "メニュー3" ); } // メニューが選択された時の処理を記述 @Override public boolean onContextItemSelected(MenuItem item) { switch (item.getItemId()) { case 0 : Toast.makeText( this , "メニュー1がクリックされました" , Toast.LENGTH_SHORT).show(); return true ; case 10 : Toast.makeText( this , "メニュー2がクリックされました" , Toast.LENGTH_SHORT).show(); return true ; default : Toast.makeText( this , "コンテキストメニューがクリックされました" , Toast.LENGTH_SHORT) .show(); return super .onContextItemSelected(item); } } } |
activity_main.xml
今回の画面の定義(activity_main.xml)はデフォルトのtextviewにidのみ追加しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 | android:layout_width = "match_parent" android:layout_height = "match_parent" android:padding = "15dp" > < TextView android:id = "@+id/textView1" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:text = "@string/hello_world" /> </ RelativeLayout > |
これでOKです。