Android入门(44)——第六章 使用OptionsMenu实现选项菜单
2015-07-10 14:02
766 查看
1. 简介:
2. 使用方法:
3. 案例一:静态加载菜单:
第一步:在文件夹res下的menu下的main.xml中记录了菜单项的内容:
4. 案例二:动态添加菜单:
第一步:修改MainActivity:
5. 案例三:添加点击后的跳转:
第一步:创建跳转后活动的布局:activity_layout.xml:
2. 使用方法:
3. 案例一:静态加载菜单:
第一步:在文件夹res下的menu下的main.xml中记录了菜单项的内容:
<menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/action_menu_item1" android:orderInCategory="100" android:showAsAction="never" android:title="菜单一"/> <item android:id="@+id/action_menu_item2" android:orderInCategory="100" android:showAsAction="never" android:title="菜单二"/> </menu>第二步:改写MainActivity活动文件:主要就是两个函数:onCreateOptionsMenu和onOptionsItemSelected。
package com.example.optionmenu; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.MenuItem; import android.widget.Toast; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } /* * 重写点击事件响应 */ @Override public boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub switch (item.getItemId()) { case R.id.action_menu_item1: Toast.makeText(MainActivity.this, "点击了菜单一", Toast.LENGTH_SHORT) .show(); break; case R.id.action_menu_item2: Toast.makeText(MainActivity.this, "点击了菜单二", Toast.LENGTH_SHORT) .show(); break; default: break; } return super.onOptionsItemSelected(item); } }效果图:
4. 案例二:动态添加菜单:
第一步:修改MainActivity:
package com.example.optionmenu; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.MenuItem; import android.widget.Toast; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // 静态方法: // Inflate the menu; this adds items to the action bar if it is present. //getMenuInflater().inflate(R.menu.main, menu); // 动态方法:四个参数:groupId分组Id,itemId菜单项的Id,order菜单项排序用的,title文字描述 // 静态方法的时候第二个参数id是这样写的:R.id.action_menu_item1 menu.add(1, 100, 1, "菜单一"); menu.add(1, 101, 1, "菜单二"); menu.add(1, 102, 1, "菜单三"); return true; } /* * 重写点击事件响应 */ @Override public boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub switch (item.getItemId()) { case 100: Toast.makeText(MainActivity.this, "点击了菜单一", Toast.LENGTH_SHORT) .show(); break; case 101: Toast.makeText(MainActivity.this, "点击了菜单二", Toast.LENGTH_SHORT) .show(); break; case 102: Toast.makeText(MainActivity.this, "点击了菜单三", Toast.LENGTH_SHORT) .show(); break; default: break; } return super.onOptionsItemSelected(item); } }效果图与上一个案例相同。
5. 案例三:添加点击后的跳转:
第一步:创建跳转后活动的布局:activity_layout.xml:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="这是第二个界面" /> </LinearLayout>第二步:创建跳转后的活动:SecondActivity.java:
package com.example.optionmenu; import android.app.Activity; import android.os.Bundle; public class SecondActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_layout); } }第三步:去AndroidManifest清单文件中去注册第二个活动:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.optionmenu" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.optionmenu.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.example.optionmenu.SecondActivity" android:label="@string/app_name" > </activity> </application> </manifest>第四步:在MainActivity中设置跳转:
package com.example.optionmenu; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.MenuItem; import android.widget.Toast; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // 静态方法: // Inflate the menu; this adds items to the action bar if it is present. //getMenuInflater().inflate(R.menu.main, menu); // 动态方法:四个参数:groupId分组Id,itemId菜单项的Id,order菜单项排序用的,title文字描述 // 静态方法的时候第二个参数id就这样写:R.id.action_menu_item1 // 可以设置一些菜单项的属性: MenuItem item1 = menu.add(1, 100, 1, "菜单一"); item1.setTitle("aaa"); item1.setIcon(R.drawable.ic_launcher); // 前提是api>=11才显示图标 menu.add(1, 101, 1, "菜单二"); menu.add(1, 102, 1, "菜单三"); return true; } /* * 重写点击事件响应 */ @Override public boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub switch (item.getItemId()) { case 100: // 从第一个Activity跳转到第二个Activity。 Intent intent = new Intent(MainActivity.this,SecondActivity.class); item.setIntent(intent); break; default: break; } return super.onOptionsItemSelected(item); } }效果图:
相关文章推荐
- Android各模块学习比较好的文章
- Android APK反编译
- android 沉浸式状态栏 背景色修改
- Android Xutils 框架
- android:由URL载入中ImageView
- Android添加横线和竖线分割界面
- AndroidAndroid程序提示和消息button响应事件
- mac电脑开发android找不到设备
- Android蓝牙
- Android程序设计-RecyclerView的使用
- Android 插件框架 xCombine 开发思路简介
- ANDROID技术积累:开发规范
- Android入门(43)——第五章 使用Notification实现状态通知栏的通知
- 封装自定义ViewPager实现左右自动切换和手势滑动效果
- android.view.inflateException: Error inflating class <unknown>
- 初识 Android Studio
- 浅析android适配器adapter中的那些坑
- 关于Android知识的杂乱总结
- Android开发之错误:elicpse运行时弹出Running Android Lint has encountered a problem failed, nullpointerexception
- Android:创建耐磨应用 - 语音操作