您的位置:首页 > 移动开发 > Android开发

android简单实例--------普通菜单optionMenu,上下文菜单ContextMenu,弹出式菜单的使用PopuMenu(二)

2016-02-25 17:04 645 查看
放一些android中三种菜单的使用,包括最常见的菜单栏,还有上下文菜单ContextMenu,以及弹出式菜单PopupMenu的简单应用与对应方法参数详解。


-------------------------------------------------------

上下文菜单效果图:



代码如下:

@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
getMenuInflater().inflate(R.menu.demo4,menu);
}

重写这个方法,加载直接写的menu文件,这里用的是上一次普通菜单栏写好的。。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_demo5);
textView = (TextView) findViewById(R.id.text_view);
registerForContextMenu(textView);
}

然后再onCreate方法里为实现了这个上下文菜单的view注册registerForContextMenu()。
这样就可以实现上下文菜单的功能了,长按你所注册的view,这样子上下文菜单就会弹出来了。

接下来看一下如何处理上下文菜单事件,在activity中重写如下方法:

@Override
public boolean onContextItemSelected(MenuItem item) {
String message = null ;
switch (item.getItemId()) {
case R.id.item_china:
message = "中国";
break;
case R.id.item_japan:
message = "日本";
break;
case R.id.item_america:
message = "美国";
break;
case R.id.item_action_bar:
message = "action bar";
break;
}

Toast.makeText(this, message+"被点击了", Toast.LENGTH_LONG).show();
return super.onContextItemSelected(item);
}

效果图:



可以看到点击事件被响应了,而且弹出了二级菜单,二级菜单如何实现呢?和普通菜单的二级菜单一样,在XML文件中定义就行了。

<item
android:id="@+id/item_china"
android:orderInCategory="100"
android:showAsAction="never"
android:title="中国">
<menu>
<item
android:id="@+id/item_beijing"
android:orderInCategory="200"
android:showAsAction="never"
android:title="北京"/>
<item
android:id="@+id/item_shanghai"
android:orderInCategory="200"
android:showAsAction="never"
android:title="上海"/>
</menu>
</item>

-------------------------------------------------------

原创,我在这里说明一下,这里的例子都是非常简单的例子,更适合初学者,只有先学会用,才能研究更深层次的东西,初学者千万不要陷入诸如每个参数到底是什么意思,这里不这样,如果那样会怎么样,这是无穷无尽的问题,非常影响入门,只有用熟悉之后,才更容易的去纠结这些东西,所以我在这里不写这些东西了。只适合初学者看看的例子。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: