menu

来源:互联网 发布:wmware 怎么安装mac os 编辑:程序博客网 时间:2024/06/16 17:18

1、选项菜单

/** * 此方法会在父类的onCreate方法中进行回调,用于创建 一些选项菜单 */@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.// 1.根据资源Id,找到对应xml资源// 2.解析xml资源,获得对应的item元素// 3.通过反射构建item对象// 4.将item对象添加到menu对象中getMenuInflater().inflate(R.menu.main,// res/menu/main.xmlmenu);// 可选:获得itemMenuItem item = menu.findItem(R.id.item00);SearchView sv = (SearchView) item.getActionView();// sv.setOnQueryTextListener(listener)return true;}

2、菜单条目

<menu xmlns:android="http://schemas.android.com/apk/res/android" >    <!-- 菜单项目 -->    <item        android:id="@+id/item00"        android:orderInCategory="100"        android:showAsAction="always|collapseActionView"        android:actionViewClass="android.widget.SearchView"        android:title="item00"        android:icon="@android:drawable/ic_menu_search"/>    <item        android:id="@+id/item01"        android:orderInCategory="100"        android:showAsAction="never"        android:title="item01"/>    <item        android:id="@+id/item02"        android:orderInCategory="101"        android:showAsAction="always"        android:title="item02"        android:icon="@android:drawable/ic_menu_call"/>    <item        android:id="@+id/item03"        android:orderInCategory="102"        android:showAsAction="always"        android:title="item03"        android:icon="@android:drawable/ic_menu_camera"/></menu>
3、菜单的点击事件

/** 监听选项菜单的item的点击事件 */@Overridepublic boolean onOptionsItemSelected(MenuItem item) {int id = item.getItemId();if (id == R.id.item02) {// Toast.makeText(this, "拨号", 1).show();Intent intent = new Intent(Intent.ACTION_CALL);intent.setData(Uri.parse("tel:010"));startActivity(intent);} else if (id == R.id.item03) {}return true;}

4、该菜单的其他实现方式

@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.// getMenuInflater().inflate(menuRes, menu)MenuItem item01 = menu.add(1, 100, 200, "item01");item01.setIcon(android.R.drawable.ic_menu_add);item01.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);MenuItem item02 = menu.add(1, 101, 201, "item02");item02.setIcon(android.R.drawable.ic_menu_close_clear_cancel);item02.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);MenuItem item03 = menu.add(1, 102, 201, "item02");item03.setIcon(android.R.drawable.ic_menu_search);item03.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS| MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);item03.setActionView(new SearchView(this));// menu.addSubMenu(groupId, itemId, order, title)return true;}

5、该菜单的其他实现方式2

<menu xmlns:android="http://schemas.android.com/apk/res/android" >    <item        android:id="@+id/action_settings"        android:orderInCategory="100"        android:showAsAction="always"        android:title="@string/action_settings"        android:icon="@android:drawable/ic_menu_set_as">                <menu>            <item android:id="@+id/item01"                android:orderInCategory="200"                android:showAsAction="never"                android:title="item01"/>            <item android:id="@+id/item02"                android:orderInCategory="201"                android:showAsAction="never"                android:title="item01"/>                    </menu>    </item></menu>

6、PopupMenu

public void onClick(final View v) {<span style="white-space:pre"></span>// 1.构建一个PopuMenu对象,并将此对象注册到一个view上<span style="white-space:pre"></span>PopupMenu pm = new PopupMenu(this, v);<span style="white-space:pre"></span>// 2.构建菜单项对象<span style="white-space:pre"></span>/*<span style="white-space:pre"></span> * pm.getMenuInflater() .inflate(R.menu.main, pm.getMenu());<span style="white-space:pre"></span> */<span style="white-space:pre"></span>pm.getMenu().add(1, 1, 100, "A");<span style="white-space:pre"></span>pm.getMenu().add(1, 2, 101, "B");<span style="white-space:pre"></span>pm.getMenu().add(1, 3, 102, "C");<span style="white-space:pre"></span>// 添加监听器<span style="white-space:pre"></span>pm.setOnMenuItemClickListener(new OnMenuItemClickListener() {<span style="white-space:pre"></span>@Override<span style="white-space:pre"></span>public boolean onMenuItemClick(MenuItem item) {<span style="white-space:pre"></span>((Button) v).setText(item.getTitle());<span style="white-space:pre"></span>return true;<span style="white-space:pre"></span>}<span style="white-space:pre"></span>});<span style="white-space:pre"></span>// 3.显示菜单<span style="white-space:pre"></span>pm.show();<span style="white-space:pre"></span>}


0 0