Adnroid_菜单练习总结
2013-03-20 11:33
197 查看
1、通过代码和配置文件生成菜单。
效果图为:
![](http://img.my.csdn.net/uploads/201303/20/1363750329_9744.png)
代码如下:
以下代码有通过代码生成,也有配置文件生成,中间用注释分开了,练习时综合在一块了。
代码如下:
代码如下:
如需源码,请在此下载:
http://download.csdn.net/download/zlfxy/5161152
效果图为:
![](http://img.my.csdn.net/uploads/201303/20/1363750329_9744.png)
代码如下:
以下代码有通过代码生成,也有配置文件生成,中间用注释分开了,练习时综合在一块了。
package com.example.menu_pratice; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; public class MainActivity extends Activity { Button button = null,button2 = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button) findViewById(R.id.button); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent = new Intent(MainActivity.this,ContextMenu.class); startActivity(intent); } }); button2 = (Button) findViewById(R.id.button2); button2.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent = new Intent(MainActivity.this,SubMenuActivity.class); startActivity(intent); } }); } //创建选项菜单方法 @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. //通过配置文件创建菜单按钮 //getMenuInflater().inflate(R.menu.activity_main, menu); //通过代码创建菜单按钮 menu.add(Menu.NONE, Menu.FIRST+1, 1, "添加").setIcon(android.R.drawable.ic_menu_add); menu.add(Menu.NONE, Menu.FIRST+2, 2, "删除").setIcon(android.R.drawable.ic_menu_delete); menu.add(Menu.NONE, Menu.FIRST+3, 3, "编辑").setIcon(android.R.drawable.ic_menu_edit); menu.add(Menu.NONE, Menu.FIRST+4, 4, "详细").setIcon(android.R.drawable.ic_menu_info_details); menu.add(Menu.NONE, Menu.FIRST+5, 5, "帮助").setIcon(android.R.drawable.ic_menu_help); menu.add(Menu.NONE, Menu.FIRST+6, 6, "保存").setIcon(android.R.drawable.ic_menu_save); menu.add(Menu.NONE, Menu.FIRST+7, 7, "发送").setIcon(android.R.drawable.ic_menu_send); menu.add(Menu.NONE, Menu.FIRST+8, 8, "更多").setIcon(android.R.drawable.ic_menu_more); return true; } //单击每个选项后调用方法 @Override public boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub //获取配置文件ID /*switch (item.getItemId()) { case R.id.item01: Toast.makeText(this, "选择了添加按钮", Toast.LENGTH_SHORT).show(); break; case R.id.item02: Toast.makeText(this, "选择了删除按钮", Toast.LENGTH_SHORT).show(); break; case R.id.item03: Toast.makeText(this, "选择了详细按钮", Toast.LENGTH_SHORT).show(); break; case R.id.item04: Toast.makeText(this, "选择了编辑按钮", Toast.LENGTH_SHORT).show(); break; case R.id.item05: Toast.makeText(this, "选择了帮助按钮", Toast.LENGTH_SHORT).show(); break; case R.id.item06: Toast.makeText(this, "选择了更多按钮", Toast.LENGTH_SHORT).show(); break; case R.id.item07: Toast.makeText(this, "选择了保存按钮", Toast.LENGTH_SHORT).show(); break; case R.id.item08: Toast.makeText(this, "选择了发送按钮", Toast.LENGTH_SHORT).show(); break; default: break; }*/ //获取代码生成菜单的ID switch (item.getItemId()) { case Menu.FIRST+1: Toast.makeText(this, "选择了添加按钮", Toast.LENGTH_SHORT).show(); break; //....... default: break; } return super.onOptionsItemSelected(item); } //每个菜单选项关闭后调用的方法 @Override public void onOptionsMenuClosed(Menu menu) { // TODO Auto-generated method stub //Toast.makeText(this, "选项菜单关闭了", Toast.LENGTH_SHORT).show(); super.onOptionsMenuClosed(menu); } //菜单选项调用前做的一些处理 @Override public boolean onPrepareOptionsMenu(Menu menu) { // TODO Auto-generated method stub Toast.makeText(this, "在菜单onCreateOptionsMenu(Menu menu)方法前调用,可以在此做一些预处理", Toast.LENGTH_SHORT).show(); return super.onPrepareOptionsMenu(menu); } }2、通过代码和配置文件生成上下文菜单。
代码如下:
package com.example.menu_pratice; import android.app.Activity; import android.os.Bundle; import android.view.ContextMenu.ContextMenuInfo; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; public class ContextMenu extends Activity { private String[] data = new String[]{"zz","cc","dd","ee"}; private ListView listView = null; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); listView = new ListView(this); listView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, this.data)); super.setContentView(listView); super.registerForContextMenu(listView); } //上下文菜单选中时调用该方法 @Override public boolean onContextItemSelected(MenuItem item) { // TODO Auto-generated method stub //通过代码生成的上下文菜单ID /*switch (item.getItemId()) { case Menu.FIRST+1: Toast.makeText(this, "上下文菜单的aaaaaaaaa", Toast.LENGTH_SHORT).show(); break; case Menu.FIRST+2: Toast.makeText(this, "上下文菜单的bbbbbbbbb", Toast.LENGTH_SHORT).show(); break; case Menu.FIRST+3: Toast.makeText(this, "上下文菜单的ccccccccc", Toast.LENGTH_SHORT).show(); break; case Menu.FIRST+4: Toast.makeText(this, "上下文菜单的ddddddddd", Toast.LENGTH_SHORT).show(); break; default: break; }*/ //获取配置文件中的上下文菜单的ID switch (item.getItemId()) { case R.id.item001: Toast.makeText(this, "单击了添加联系人", Toast.LENGTH_SHORT).show(); break; case R.id.item002: Toast.makeText(this, "单击了查询详情", Toast.LENGTH_SHORT).show(); break; case R.id.item003: Toast.makeText(this, "单击了删除联系人", Toast.LENGTH_SHORT).show(); break; case R.id.item004: Toast.makeText(this, "单击了另存为", Toast.LENGTH_SHORT).show(); break; case R.id.item005: Toast.makeText(this, "单击了编辑", Toast.LENGTH_SHORT).show(); break; default: break; } return super.onContextItemSelected(item); } //上下文菜单关闭时调用该方法 @Override public void onContextMenuClosed(Menu menu) { // TODO Auto-generated method stub Toast.makeText(this, "上下文菜单关闭了", Toast.LENGTH_SHORT).show(); super.onContextMenuClosed(menu); } //创建上下文菜单方法 @Override public void onCreateContextMenu(android.view.ContextMenu menu, View v, ContextMenuInfo menuInfo) { // TODO Auto-generated method stub super.onCreateContextMenu(menu, v, menuInfo); //通过代码生成上下文菜单 /*menu.setHeaderTitle("这里是上下文菜单"); menu.add(Menu.NONE, Menu.FIRST+1, 1, "aaaaaaaaaa"); menu.add(Menu.NONE, Menu.FIRST+2, 2, "bbbbbbbbbb"); menu.add(Menu.NONE, Menu.FIRST+3, 3, "cccccccccc"); menu.add(Menu.NONE, Menu.FIRST+4, 4, "dddddddddd");*/ //通过配置文件生成菜单 menu.setHeaderTitle("信息操作"); super.getMenuInflater().inflate(R.menu.mymenu, menu); } }3、通过代码和配置文件生成,带有子菜单项的菜单。
代码如下:
package com.example.menu_pratice; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.SubMenu; import android.widget.Toast; /* * 创建字菜单项 */ public class SubMenuActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); super.setContentView(R.layout.context_menu); } @Override public boolean onCreateOptionsMenu(Menu menu) { // TODO Auto-generated method stub SubMenu fileMenu = menu.addSubMenu("文件"); // 子菜单 SubMenu editMenu = menu.addSubMenu("编辑"); // 子菜单 // 通过代码生成子菜单 /*fileMenu.add(Menu.NONE, Menu.FIRST + 1, 1, "新建"); // 子菜单项 fileMenu.add(Menu.NONE, Menu.FIRST + 2, 2, "打开"); // 子菜单项 fileMenu.add(Menu.NONE, Menu.FIRST + 3, 3, "保存"); // 子菜单项 editMenu.add(Menu.NONE, Menu.FIRST + 4, 4, "撤消"); // 子菜单项 editMenu.add(Menu.NONE, Menu.FIRST + 5, 5, "恢复"); // 子菜单项 */ //通过配置文件生成子菜单 super.getMenuInflater().inflate(R.menu.filemenu, fileMenu) ; // 设置菜单项 super.getMenuInflater().inflate(R.menu.editmenu, editMenu) ; // 设置菜单项 return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub switch (item.getItemId()) { // 判断菜单项ID case Menu.FIRST + 1: Toast.makeText(this, "您选择的是“新建”项。", Toast.LENGTH_LONG).show(); break; case Menu.FIRST + 2: Toast.makeText(this, "您选择的是“打开”项。", Toast.LENGTH_LONG).show(); break; case Menu.FIRST + 3: Toast.makeText(this, "您选择的是“保存”项。", Toast.LENGTH_LONG).show(); break; case Menu.FIRST + 4: Toast.makeText(this, "您选择的是“撤销”项。", Toast.LENGTH_LONG).show(); break; case Menu.FIRST + 5: Toast.makeText(this, "您选择的是“编辑”项。", Toast.LENGTH_LONG).show(); break; } return super.onOptionsItemSelected(item); } }
如需源码,请在此下载:
http://download.csdn.net/download/zlfxy/5161152
相关文章推荐
- C#Winform菜单的使用问题总结
- WCF练习小程序总结
- Android面试宝典总结 --第四章:对话框、信息提示和菜单
- SDAU练习二总结
- Tab形式的菜单实现总结TabHost 和 FragmentTabHost
- 华为机试题练习总结
- Maven学习总结(二)——Maven项目构建过程练习
- nav练习总结
- 实验六——循环结构程序练习总结
- 微信飞机大战cocos2dx项目总结之一 菜单场景
- vector的坑——C++primer练习6.33总结
- 算法导论13.1红黑树的性质 练习总结
- python-列表 字典 集合 元祖 字符串的相关总结练习
- python 练习多级菜单思路
- 【移入移出事件练习】【菜单】【选项卡】 -------this使用
- ACM培训练习总结 2
- 课堂练习之结对开发项目思想总结:返回一个整数数组中最大子数组的和
- Python基础-小程序练习(跳出多层循环,购物车,多级菜单,用户登录)
- 锋利的jquery初体验--折叠菜单练习
- 两个导航菜单练习