Menu整理
2014-04-12 10:32
232 查看
一、选项菜单:最常规的菜单,android中把它叫做option menu,示例:
![](http://img.blog.csdn.net/20140412102038171?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWVyc3RlcmRheQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
menu),示例:
在工程的/menu下main.xml代码:
Activity代码:
二、上下文菜单:android中长按视图控件后出现的菜单,windows点击右键弹出的菜单即上下文菜单
![](http://img.blog.csdn.net/20140412102605859?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWVyc3RlcmRheQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
三、下拉框spinner
效果图:
![](http://img.blog.csdn.net/20140412102914609?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWVyc3RlcmRheQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
public class MainActivity extends Activity { private static final int CREATE_MENU=Menu.FIRST; private static final int ALTER_MENU=Menu.FIRST+1; private static final int UPDATE_MENU=Menu.FIRST+2; private static final int EXIT_MENU=Menu.FIRST+3; private static final int UPDATE_SUBMENU1=Menu.FIRST+4; private static final int UPDATE_SUBMENU2=Menu.FIRST+5; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case UPDATE_SUBMENU2: Toast.makeText(this, "选择了",1).show(); break; } return super.onOptionsItemSelected(item); } @Override public boolean onCreateOptionsMenu(Menu menu) { menu.add(Menu.NONE, CREATE_MENU, Menu.NONE, "新建"); menu.add(Menu.NONE, ALTER_MENU, Menu.NONE, "修改"); SubMenu subMenu=menu.addSubMenu(Menu.NONE, UPDATE_MENU, Menu.NONE, "更新"); subMenu.add(Menu.NONE, UPDATE_SUBMENU1, Menu.NONE, "更新 1"); subMenu.add(Menu.NONE, UPDATE_SUBMENU2, Menu.NONE, "更新 2"); menu.add(Menu.NONE, EXIT_MENU, Menu.NONE, "退出"); return true; } }用xml写Menu,依然以常规的菜单为例(option
menu),示例:
在工程的/menu下main.xml代码:
<menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/create" android:icon="@drawable/ic_launcher" android:title="@string/create"/> <item android:id="@+id/setting" android:title="@string/setting"> <menu> <item android:id="@+id/setting1" android:title="@string/setting1"> </item> <item android:id="@+id/setting2" android:title="@string/setting2"> </item> </menu> </item> <item android:id="@+id/update" android:title="@string/update"/> <item android:id="@+id/exit" android:title="@string/exit"/> </menu>
Activity代码:
public class MainActivity extends Activity { private static final String TAG = "TAG"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onMenuItemSelected(int featureId, MenuItem item) { switch (item.getItemId()) { case R.id.create: Log.d(TAG, "CREATE~~~~~~~~~~~~"); break; case R.id.setting2: Log.d(TAG, "setting2~~~~~~~~~~~~"); break; case R.id.exit: Log.d(TAG, "exit~~~~~~~~~~~~"); break; } return super.onMenuItemSelected(featureId, item); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } }
二、上下文菜单:android中长按视图控件后出现的菜单,windows点击右键弹出的菜单即上下文菜单
public class MainActivity extends Activity { private static final int MENU1=Menu.FIRST; private static final int MENU2=Menu.FIRST+1; private static final int MENU3=Menu.FIRST+2; private static final int MENU4=Menu.FIRST+3; private TextView mTextView; private Button mButton; private ImageView mImageView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTextView=(TextView) findViewById(R.id.textViewId); mButton=(Button) findViewById(R.id.buttonId); mImageView=(ImageView) findViewById(R.id.imageViewId); this.registerForContextMenu(mTextView); this.registerForContextMenu(mButton); this.registerForContextMenu(mImageView); } @Override public boolean onContextItemSelected(MenuItem item) { Log.d("TAG", ""+item.getItemId()); switch (item.getItemId()) { case MENU1 : Toast.makeText(this, "MENU1", 0).show(); break; case MENU2 : Toast.makeText(this, "MENU2", 0).show(); break; case MENU3 : Toast.makeText(this, "MENU3", 0).show(); break; case MENU4 : Toast.makeText(this, "MENU4", 0).show(); break; default: break; } return super.onContextItemSelected(item); } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { switch (v.getId()) { case R.id.textViewId: menu.add(Menu.NONE, MENU1, Menu.NONE, "哈哈1"); break; case R.id.imageViewId: menu.add(Menu.NONE, MENU2, Menu.NONE, "哈哈2"); break; case R.id.buttonId: menu.add(Menu.NONE, MENU3, Menu.NONE, "哈哈3"); menu.add(Menu.NONE, MENU4, Menu.NONE, "哈哈4"); break; } super.onCreateContextMenu(menu, v, menuInfo); } }
三、下拉框spinner
效果图:
package cn.imcore.test; import android.app.Activity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.Spinner; public class MainActivity extends Activity { private Spinner mSpinner; private ArrayAdapter mAdapter; private String [] hobby ={"棒球","足球","看书"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mSpinner=(Spinner) findViewById(R.id.spinnerId); mAdapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, hobby); mAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // String[] hobby = getResources().getStringArray(R.array.hobby); // mAdapter=ArrayAdapter.createFromResource(this, R.array.hobby, android.R.layout.simple_spinner_item); // mAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); mSpinner.setAdapter(mAdapter); } }还有PopupMenu等日后更新。。。。。。。。。。。
相关文章推荐
- ddlevelsmenu在IE6下,与select冲突的解决办法【整理】
- android menu,activity,AlertDialog... 链接整理
- Github开源Android组件资源整理(二)ActionBar和Menu
- Start Menu Organizer-对开始菜单中的程序进行分类和整理
- Start Menu Organizer-对开始菜单中的程序进行分类和整理
- Github开源Android组件资源整理(二)ActionBar和Menu
- Android日常整理(四)---Menu键监听、intent打开浏览器
- 菜单函数Android学习整理-菜单Menu
- 整理的几个常用的数据库维护的脚本(ZT)
- 画几张图把自己的思路整理整理
- nginx配置虚拟主机[整理]超详细
- 网络工作室暑假后第三次培训资料(几种SQL分页的总结)整理
- android 源码 在状态栏添加 虚拟按键(back,home,menu)
- C++每日积累学习整理——指针部分
- Android 内存溢出解决方案(OOM) 整理总结
- cocos2D(八)---- CCMenu && CCMenuItem
- http协议常用功能整理之web缓存
- 基于.NET平台常用的框架整理
- Java面试题整理二(各种类的区别对比)
- 书本整理