您的位置:首页 > 其它

menu

2016-06-07 20:53 447 查看
1、选项菜单

/**
* 此方法会在父类的onCreate方法中进行回调,用于创建 一些选项菜单
*/
@Override
public 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.xml
menu);
// 可选:获得item
MenuItem 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的点击事件 */
@Override
public 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、该菜单的其他实现方式

@Override
public 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>}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  选项菜单 menu