使用actionbar时,需要重写以下两个方法
2016-04-06 17:11
323 查看
1
重写Activity的onCreateOptionsMenu()方法
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu); }
这部分代码很简单,仅仅是调用了MenuInflater的inflate()方法来加载menu资源就可以了。在activity的顶部显示自定义的actionbar
2
当用户点击Action按钮的时候,系统会调用Activity的onOptionsItemSelected()方法,通过方法传入的MenuItem参数,我们可以调用它的getItemId()方法和menu资源中的id进行比较,从而辨别出用户点击的是哪一个Action按钮,
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_compose:
Toast.makeText(this, "Compose", Toast.LENGTH_SHORT).show();
return true;
case R.id.action_delete:
Toast.makeText(this, "Delete", Toast.LENGTH_SHORT).show();
return true;
case R.id.action_settings:
Toast.makeText(this, "Settings", Toast.LENGTH_SHORT).show();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
重写Activity的onCreateOptionsMenu()方法
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu); }
这部分代码很简单,仅仅是调用了MenuInflater的inflate()方法来加载menu资源就可以了。在activity的顶部显示自定义的actionbar
2
响应Action按钮的点击事件
当用户点击Action按钮的时候,系统会调用Activity的onOptionsItemSelected()方法,通过方法传入的MenuItem参数,我们可以调用它的getItemId()方法和menu资源中的id进行比较,从而辨别出用户点击的是哪一个Action按钮,@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_compose:
Toast.makeText(this, "Compose", Toast.LENGTH_SHORT).show();
return true;
case R.id.action_delete:
Toast.makeText(this, "Delete", Toast.LENGTH_SHORT).show();
return true;
case R.id.action_settings:
Toast.makeText(this, "Settings", Toast.LENGTH_SHORT).show();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
相关文章推荐
- 黑马程序员——Java基础---环境变量与DOS命令与代码书写与标识符命名等
- Redis的持久化选项
- 关于使用类成员函数作为回调的方法
- Leetcode 328 Odd Even Linked List
- 最大联通子数组
- 用Excel VBA连接SQL Server数据库并将表中的数据显示到Excel中
- adb 直接安装软件
- Shape Context 形状上下文特征
- .Net使用Oracle驱动访问数据库
- 【剑指offer】旋转数组的最小数字
- ios关于viewController初始化赋值的问题,VC调用问题
- ServiceLocator 简单示例(转)
- mysql Access denied for user \'root\'@\'localhost\'”解决办法总结,下面我们对常见的出现的一些错误代码进行分析并给出解决办法,有需要的朋友可参考一下。
- 进阶光照与材质之模拟真实世界的光照
- 完美解决Android SDK Manager无法更新
- Vsftp的PASV mode(被动模式传送)和Port模式及 Linux下VsFTP配置全方案
- Tomcat下载及配置(windows系统)
- 关于fastjson大小写转换问题的解决办法
- mysql大量数据迁移
- win7下python nltk环境搭建