Adnroid_菜单练习总结

来源:互联网 发布:淘宝一元能买什么 编辑:程序博客网 时间:2024/05/21 17:00

1、通过代码和配置文件生成菜单。

效果图为:

代码如下:

以下代码有通过代码生成,也有配置文件生成,中间用注释分开了,练习时综合在一块了。

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;@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button = (Button) findViewById(R.id.button);button.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){// TODO Auto-generated method stubIntent intent = new Intent(MainActivity.this,ContextMenu.class);startActivity(intent);}});button2 = (Button) findViewById(R.id.button2);button2.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){// TODO Auto-generated method stubIntent intent = new Intent(MainActivity.this,SubMenuActivity.class);startActivity(intent);}});}//创建选项菜单方法@Overridepublic 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;}//单击每个选项后调用方法@Overridepublic 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;}*///获取代码生成菜单的IDswitch (item.getItemId()){case Menu.FIRST+1:Toast.makeText(this, "选择了添加按钮", Toast.LENGTH_SHORT).show();break;//.......default:break;}return super.onOptionsItemSelected(item);}//每个菜单选项关闭后调用的方法@Overridepublic void onOptionsMenuClosed(Menu menu){// TODO Auto-generated method stub//Toast.makeText(this, "选项菜单关闭了", Toast.LENGTH_SHORT).show();super.onOptionsMenuClosed(menu);}//菜单选项调用前做的一些处理@Overridepublic boolean onPrepareOptionsMenu(Menu menu){// TODO Auto-generated method stubToast.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; @Overrideprotected void onCreate(Bundle savedInstanceState){// TODO Auto-generated method stubsuper.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);}  //上下文菜单选中时调用该方法@Overridepublic 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;}*///获取配置文件中的上下文菜单的IDswitch (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);}//上下文菜单关闭时调用该方法@Overridepublic void onContextMenuClosed(Menu menu){// TODO Auto-generated method stubToast.makeText(this, "上下文菜单关闭了", Toast.LENGTH_SHORT).show();super.onContextMenuClosed(menu);}//创建上下文菜单方法@Overridepublic void onCreateContextMenu(android.view.ContextMenu menu, View v,ContextMenuInfo menuInfo){// TODO Auto-generated method stubsuper.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{@Overrideprotected void onCreate(Bundle savedInstanceState){// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);super.setContentView(R.layout.context_menu);}@Overridepublic boolean onCreateOptionsMenu(Menu menu){// TODO Auto-generated method stubSubMenu 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;}@Overridepublic boolean onOptionsItemSelected(MenuItem item){// TODO Auto-generated method stubswitch (item.getItemId()){ // 判断菜单项IDcase 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

原创粉丝点击