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>
-------------------------------------------------------
原创,我在这里说明一下,这里的例子都是非常简单的例子,更适合初学者,只有先学会用,才能研究更深层次的东西,初学者千万不要陷入诸如每个参数到底是什么意思,这里不这样,如果那样会怎么样,这是无穷无尽的问题,非常影响入门,只有用熟悉之后,才更容易的去纠结这些东西,所以我在这里不写这些东西了。只适合初学者看看的例子。。。
-------------------------------------------------------
上下文菜单效果图:
代码如下:
@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>
-------------------------------------------------------
原创,我在这里说明一下,这里的例子都是非常简单的例子,更适合初学者,只有先学会用,才能研究更深层次的东西,初学者千万不要陷入诸如每个参数到底是什么意思,这里不这样,如果那样会怎么样,这是无穷无尽的问题,非常影响入门,只有用熟悉之后,才更容易的去纠结这些东西,所以我在这里不写这些东西了。只适合初学者看看的例子。。。
相关文章推荐
- GitHub 优秀的 Android 开源项目
- 第一行代码-9.2 Android 多线程编程
- Android截屏
- android中xml tools属性详解
- Android插件化开发 第四篇 [加载插件Activity]
- android手机锁屏后GPS模块发出的NMEA数据频率降低
- 浅谈Android app开发中Fragment的Transaction操作
- Android之AlarmManager
- Android4开发入门经典 之 第三部分:Activity
- android 构造方法
- android开发练习二-Retrofit
- Android 资源管理 Asset 、Raw 和Drawable
- Android之百度推送高级篇之通知
- Android studio 编译报libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
- Android ImageSwitcher 配合Picasso解决内存溢出(OOM)问题
- Android M PackageManagerService解析
- Android TextView 单行文本的坑
- Android的SimpleCursorAdapter出错
- com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000)
- 彻底明白Android中AIDL及其使用