Menu 和 context上下文的的理解
来源:互联网 发布:照片数字识别软件 编辑:程序博客网 时间:2024/06/05 16:34
Menu 和 context上下文的的理解
一 、Menu 的理解:
1.在res中新建文件夹,命名为menu。
2. 新建xml文件
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MenuTest" >
<item
android:id="@+id/start"
android:orderInCategory="100"
android:title="开始"/>
<item
android:id="@+id/over"
android:orderInCategory="200"
android:title="结束"/>
</menu>
3.在activity上重写两个方法
/*加载menu页面到组件上,创建菜单第一次被调用*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_test,menu);
return true;
}
/*重写onOptionsItemSelected给选项添加点击事件*/
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.start:
Toast.makeText(this, "开始", Toast.LENGTH_LONG).show();
break;
case R.id.over:
Toast.makeText(this, "结束", Toast.LENGTH_LONG).show();
break;
}
return true;
}
4.如果要显示在Bar上,需要在xml里 添加属性 showAsAction=
其中有五个选择
ifRoom(如果有空间),never,always,withText(只显示文本,如果有图片的话),collapseActionView(收着)
5.<item>可以内嵌子菜单
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context=".MenuTest">
<item
android:id="@+id/start"
android:orderInCategory="100"
android:title="开始"
app:showAsAction="always"/>
<item
android:id="@+id/over"
android:orderInCategory="200"
android:title="结束"
app:showAsAction="collapseActionView"
>
<menu>
<item
android:id="@+id/subStart"
android:title="subStart"
android:orderInCategory="300"></item>
<item
android:id="@+id/subOver"
android:title="subOver"
android:orderInCategory="400"></item>
</menu>
</item>
</menu>
java文件只需要 在onOptionsItemSelected中把点击选项添加进来
6.也可以通过java文件直接创建menu,无需xml文件
public boolean onCreateOptionsMenu(Menu menu) {
30 // Inflate the menu; this adds items to the action bar if it is present.
31 //填充选项菜单(读取XML文件、解析、加载到Menu组件上)
32 // getMenuInflater().inflate(R.menu.main, menu);
33
34 //通过代码的方式来添加Menu
35 //添加菜单项(组ID,菜单项ID,排序,标题)
36 menu.add(0, START_ITEM, 100, "Start");
37 menu.add(0, OVER_ITEM, 200, "Over");
38 //添加子菜单
39 SubMenu sub1 = menu.addSubMenu("setting");
40 sub1.add(1, SET_ITEM1, 300, "声音设置");
41 sub1.add(1, SET_ITEM2, 400, "背景设置");
42
43 return true;
44 }
二、context menu上下文菜单的理解
长按某个item不放,弹出的 即为上下文context menu
1.三步:
1.重写OnCreateContextMenu(Menu menu),getInflater().inflater(res,menu)加载xml的资源
2.重写OnContextItemSelected(MenuItem item)给item添加点击事件
3.在onCreate中 registerForContextMenu(view)注册响应的view
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
getMenuInflater().inflate(R.menu.menu_test,menu);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.start:
Toast.makeText(this, "开始", Toast.LENGTH_LONG).show();
break;
case R.id.over:
Toast.makeText(this, "结束", Toast.LENGTH_LONG).show();
break;
}
return super.onContextItemSelected(item);
}
//为context menu注册事件
registerForContextMenu(mListView);
阅读全文
0 0
- Menu 和 context上下文的的理解
- Android 的上下文菜单: Context Menu
- Android 的上下文菜单: Context Menu
- Android 的上下文菜单: Context Menu
- Android 的上下文菜单: Context Menu
- Android 的上下文菜单: Context Menu
- Android 的上下文菜单: Context Menu
- android的上下文菜单---context menu
- Android 的上下文菜单: Context Menu
- android的上下文菜单---context menu
- Android 的上下文菜单: Context Menu,registerForContextMenu(getListView())
- Android 的上下文菜单: Context Menu,registerForContextMenu(getListView())
- 5.4 Android 的上下文菜单: Context Menu,registerForContextMenu(getListView())
- 对Java中"上下文"(context)的理解
- Context Menu上下文菜单
- context--上下文的区别和获取方式
- Android Context Menu和Options Menu菜单的区别
- 上下文Context的区别
- 找亲密对数
- 【web开发】解决Sublime text3中文显示乱码问题
- 玩转Android monkey之多参数实战
- Gradle之EclipseのGradle插件安装-yellowcong
- 欢迎使用CSDN-markdown编辑器
- Menu 和 context上下文的的理解
- 修改应用中文名,图标
- iphone怎么下载推特视频,Get新技巧
- Navicat同时操作多个数据库
- ZTree控件的简单使用
- Java基础 XML解析
- unity 个人学习的第二章 动画
- cs231n_lesson4-5
- Java基础 注解Annotation