Android Learning (22) contentmenu context Menu
Last Update:2015-04-18
Source: Internet
Author: User
<span id="Label3"></p><strong><strong><span style="font-family: ‘Microsoft YaHei‘; font-size: 16px;">first, up and down to ask the menu</span></strong></strong><p><p>A long press on a menu item pops up a menu, which is the context Menu. A bit similar to the right-click menu in Windows Systems.</p></p><p><p></p></p><strong><strong><span style="font-family: ‘Microsoft YaHei‘; font-size: 16px;">Ii. Contents of the context menu</span></strong></strong><p><p>1. title</p></p><p><p>2. icons</p></p><p><p>3. Menu Items</p></p><p><p>4, the corresponding menu events</p></p><p><p></p></p><p><p><span style="font-family: ‘Microsoft YaHei‘;"><strong>Iii. the difference between Optionsmenu and contentmenu:</strong></span></p></p><p><p>1, Optionmenu corresponding activity, an activity can only have one option Menu.</p></p><p><p>2, Contentmenu The corresponding view, each view can set the context Menu.</p></p><p><p>3, in general, the context menu is commonly used in the ListView or Girdview.</p></p><p><p> </p></p><strong><strong>Iv. How to achieve contentmenu:</strong></strong><p><p>1, first give the View register context menu, Registerforcontextmenu ();</p></p><p><p>2. Add menu items by way of XML layout, or you can add menu items dynamically by way of Code.</p></p><p><p>3, set the corresponding event after the menu click, oncontextitemselected ();</p></p><p><p></p></p>five, Code Implementation<p><p>Main.xml: Place a ListView to display list information</p></p><pre><span style="color: #0000ff;"><span style="color: #0000ff;"><</span></span><span style="color: #800000;"><span style="color: #800000;">LinearLayout</span></span><span style="color: #ff0000;"><span style="color: #ff0000;">xmlns:android</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">= "http://schemas.android.com/apk/res/android"</span></span><span style="color: #ff0000;"><span style="color: #ff0000;">Xmlns:tools</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">= "http://schemas.android.com/tools"</span></span><span style="color: #ff0000;"><span style="color: #ff0000;">Android:layout_width</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">= "match_parent"</span></span><span style="color: #ff0000;"><span style="color: #ff0000;">Android:layout_height</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">= "match_parent"</span></span><span style="color: #ff0000;"><span style="color: #ff0000;">android:orientation</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">= "vertical"</span></span><span style="color: #ff0000;"><span style="color: #ff0000;">Tools:context</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">=". Mainactivity "</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">></span></span> <span style="color: #0000ff;"><span style="color: #0000ff;"><</span></span><span style="color: #800000;"><span style="color: #800000;">ListView</span></span><span style="color: #ff0000;"><span style="color: #ff0000;">Android:id</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">= "@+id/lv_files"</span></span><span style="color: #ff0000;"><span style="color: #ff0000;">Android:layout_width</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">= "match_parent"</span></span><span style="color: #ff0000;"><span style="color: #ff0000;">Android:layout_height</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">= "match_parent"</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">></span></span> <span style="color: #0000ff;"><span style="color: #0000ff;"></</span></span><span style="color: #800000;"><span style="color: #800000;">ListView</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">></span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></</span></span><span style="color: #800000;"><span style="color: #800000;">LinearLayout</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">></span></span></pre><p><p></p></p><p><p>menu_layout.xml, custom menu item content, You can get a well-defined XML menu through the Getmenuinflater method in the Menu.</p></p><pre><span style="color: #0000ff;"><span style="color: #0000ff;"><</span></span><span style="color: #800000;"><span style="color: #800000;">Menu</span></span><span style="color: #ff0000;"><span style="color: #ff0000;">xmlns:android</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">= "http://schemas.android.com/apk/res/android"</span></span><span style="color: #ff0000;"><span style="color: #ff0000;">Xmlns:app</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">= "http://schemas.android.com/apk/res-auto"</span></span><span style="color: #ff0000;"><span style="color: #ff0000;">Xmlns:tools</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">= "http://schemas.android.com/tools"</span></span><span style="color: #ff0000;"><span style="color: #ff0000;">Tools:context</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">=". Mainactivity "</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">></span></span> <span style="color: #0000ff;"><span style="color: #0000ff;"><</span></span><span style="color: #800000;"><span style="color: #800000;">Item</span></span><span style="color: #ff0000;"><span style="color: #ff0000;">Android:id</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">= "@+id/menu_copy"</span></span><span style="color: #ff0000;"><span style="color: #ff0000;">android:orderincategory</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">= "+"</span></span><span style="color: #ff0000;"><span style="color: #ff0000;">Android:title</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">= "copy"</span></span><span style="color: #ff0000;"><span style="color: #ff0000;">app:showasaction</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">= "never"</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">/></span></span> <span style="color: #0000ff;"><span style="color: #0000ff;"><</span></span><span style="color: #800000;"><span style="color: #800000;">Item</span></span><span style="color: #ff0000;"><span style="color: #ff0000;">Android:id</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">= "@+id/menu_paste"</span></span><span style="color: #ff0000;"><span style="color: #ff0000;">android:orderincategory</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">= "+"</span></span><span style="color: #ff0000;"><span style="color: #ff0000;">Android:title</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">= "paste"</span></span><span style="color: #ff0000;"><span style="color: #ff0000;">app:showasaction</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">= "never"</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">/></span></span> <span style="color: #0000ff;"><span style="color: #0000ff;"><</span></span><span style="color: #800000;"><span style="color: #800000;">Item</span></span><span style="color: #ff0000;"><span style="color: #ff0000;">Android:id</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">= "@+id/menu_cut"</span></span><span style="color: #ff0000;"><span style="color: #ff0000;">android:orderincategory</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">= "+"</span></span><span style="color: #ff0000;"><span style="color: #ff0000;">Android:title</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">= "cut"</span></span><span style="color: #ff0000;"><span style="color: #ff0000;">app:showasaction</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">= "never"</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">/></span></span> <span style="color: #0000ff;"><span style="color: #0000ff;"><</span></span><span style="color: #800000;"><span style="color: #800000;">Item</span></span><span style="color: #ff0000;"><span style="color: #ff0000;">Android:id</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">= "@+id/menu_rename"</span></span><span style="color: #ff0000;"><span style="color: #ff0000;">android:orderincategory</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">= "+"</span></span><span style="color: #ff0000;"><span style="color: #ff0000;">Android:title</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">= "rename"</span></span><span style="color: #ff0000;"><span style="color: #ff0000;">app:showasaction</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">= "never"</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">/></span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></</span></span><span style="color: #800000;"><span style="color: #800000;">Menu</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">></span></span></pre><p><p></p></p><p><p>Main.java</p></p><pre><span style="color: #0000ff;"><span style="color: #0000ff;"></span> package</span><span style="color: #000000;"><span style="color: #000000;">com.example.zhengcheng.contextmenudemo;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.os.Bundle;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.support.v7.app.ActionBarActivity;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.view.ContextMenu;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.view.MenuInflater;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.view.MenuItem;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.view.View;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.widget.AdapterView;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.widget.ArrayAdapter;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.widget.ListView;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.widget.Toast;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">java.util.ArrayList;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">java.util.zip.Inflater;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span> <span style="color: #0000ff;"><span style="color: #0000ff;">class</span></span>Mainactivity<span style="color: #0000ff;"><span style="color: #0000ff;">extends</span></span><span style="color: #000000;"><span style="color: #000000;">actionbaractivity {@Override</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">protected</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span><span style="color: #000000;"><span style="color: #000000;">onCreate (Bundle Savedinstancestate) {</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Super</span></span><span style="color: #000000;"><span style="color: #000000;">. OnCreate (savedinstancestate); Setcontentview (r.layout.activity_main); Loadlistview (); } ListView lv_files; </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Private</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span><span style="color: #000000;"><span style="color: #000000;">Loadlistview () {lv_files</span></span>=<span style="color: #000000;"><span style="color: #000000;">(ListView) Findviewbyid (r.id.lv_files); </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">create an adapter to populate into the LISTVIEW. </span></span>arrayadapter<string> adapter =<span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span>Arrayadapter<string> (<span style="color: #0000ff;"><span style="color: #0000ff;"></span> this</span><span style="color: #000000;"><span style="color: #000000;">, r.layout.support_simple_spinner_dropdown_item, getarraylist ()); </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">set the adapter for the ListView</span></span><span style="color: #000000;"><span style="color: #000000;">Lv_files.setadapter (adapter); </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">Registering a context menu for a ListView</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;"></span> this</span><span style="color: #000000;"><span style="color: #000000;">. Registerforcontextmenu (lv_files); } </span></span><span style="color: #008000;"><span style="color: #008000;">/**</span></span><span style="color: #008000;"><span style="color: #008000;">* Create context menu, override Oncreatecontextmenu method</span></span><span style="color: #008000;"><span style="color: #008000;">*/</span></span><span style="color: #000000;"><span style="color: #000000;">@Override</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span> <span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span><span style="color: #000000;"><span style="color: #000000;">oncreatecontextmenu (ContextMenu menu, View v, contextmenu.contextmenuinfo Menuinfo) {</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Super</span></span><span style="color: #000000;"><span style="color: #000000;">. Oncreatecontextmenu (menu, v, menuinfo); Menu.setheadertitle (</span></span>"file operation");<span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">set the title of the context menu</span></span>Menu.setheadericon (r.mipmap.ic_launcher);<span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">set the icon for the context menu</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">adding menu items dynamically</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">menu.add (1,101,1, "copy");</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">menu.add (1,102,1, "paste");</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">menu.add (1,103,1, "cut");</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">menu.add (1,104,1, "delete");</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">Menu.add (1,105,1, "renaming"); </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">Import XML Menu Contents</span></span>Menuinflater Inflater =<span style="color: #000000;"><span style="color: #000000;">Getmenuinflater (); Inflater.inflate (r.menu.menu_layout, menu); } </span></span><span style="color: #008000;"><span style="color: #008000;">/**</span></span><span style="color: #008000;"><span style="color: #008000;">* Set up context menu content Click event, Override oncontextitemselected Method</span></span><span style="color: #008000;"><span style="color: #008000;">*/</span></span><span style="color: #000000;"><span style="color: #000000;">@Override</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span> <span style="color: #0000ff;"><span style="color: #0000ff;">Boolean</span></span><span style="color: #000000;"><span style="color: #000000;">oncontextitemselected (MenuItem Item) {</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">gets the item item in the selected ListView</span></span>Adapterview.adaptercontextmenuinfo info =<span style="color: #000000;"><span style="color: #000000;">(adapterview.adaptercontextmenuinfo) Item.getmenuinfo (); </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">add an event to a dynamically generated menu item</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">switch (item.getitemid ()) {</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;">case <span style="color: #008000;">101:</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">toast.maketext (this, "copy", toast.length_short). show ();</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;">break <span style="color: #008000;">;</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;">case <span style="color: #008000;">102:</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">toast.maketext (this, "paste", toast.length_short). show ();</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;">break <span style="color: #008000;">;</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;">case <span style="color: #008000;">103:</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">toast.maketext (this, "cut", toast.length_short). show ();</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;">break <span style="color: #008000;">;</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;">case <span style="color: #008000;">104:</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">toast.maketext (this, "delete", toast.length_short). show ();</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;">break <span style="color: #008000;">;</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;">case <span style="color: #008000;">:</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">toast.maketext (this, "rename", toast.length_short). show ();</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;">break <span style="color: #008000;">;</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;"> } </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">generate an event for an XML menu item</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">Switch</span></span><span style="color: #000000;"><span style="color: #000000;">(item.getitemid ()) {</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> case</span><span style="color: #000000;"><span style="color: #000000;">r.id.menu_copy:</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">toast.maketext (this, "xml_ copy", toast.length_short). show ();</span></span>Toast.maketext (<span style="color: #0000ff;"><span style="color: #0000ff;"></span> this</span>, info.tostring () + "copy"<span style="color: #000000;"><span style="color: #000000;">, toast.length_short). show (); </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> break</span><span style="color: #000000;"><span style="color: #000000;">; </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> case</span><span style="color: #000000;"><span style="color: #000000;">R.id.menu_cut:toast.maketext (</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> this</span>, "xml_ cut"<span style="color: #000000;"><span style="color: #000000;">, toast.length_short). show (); </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> break</span><span style="color: #000000;"><span style="color: #000000;">; </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> case</span><span style="color: #000000;"><span style="color: #000000;">R.id.menu_paste:toast.maketext (</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> this</span>, "xml_ paste"<span style="color: #000000;"><span style="color: #000000;">, toast.length_short). show (); </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> break</span><span style="color: #000000;"><span style="color: #000000;">; </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> case</span><span style="color: #000000;"><span style="color: #000000;">R.id.menu_rename:toast.maketext (</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> this</span>, "xml_ rename"<span style="color: #000000;"><span style="color: #000000;">, toast.length_short). show (); </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> break</span><span style="color: #000000;"><span style="color: #000000;">; } </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">return</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">Super</span></span><span style="color: #000000;"><span style="color: #000000;">. oncontextitemselected (item); } </span></span><span style="color: #008000;"><span style="color: #008000;">/**</span></span><span style="color: #008000;"><span style="color: #008000;">* Get data, populate the data to Arrayadapter * *</span></span><span style="color: #808080;"><span style="color: #808080;">@return</span></span> <span style="color: #008000;"><span style="color: #008000;">*/</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">Private</span></span>Arraylist<string><span style="color: #000000;"><span style="color: #000000;">getarraylist () {ArrayList</span></span><String> list =<span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span>Arraylist<><span style="color: #000000;"><span style="color: #000000;">(); </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> for</span>(<span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span>i = 1; I <= 10; i++<span style="color: #000000;"><span style="color: #000000;">) {list.add (</span></span>"file" +<span style="color: #000000;"><span style="color: #000000;">i); } </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">return</span></span><span style="color: #000000;"><span style="color: #000000;">list; }}</span></span></pre><p><p></p></p><p><p>Android Learning (22) contentmenu context Menu</p></p></span>