文档章节

一个在ActionBar上显示图标和菜单PopupMenu的小示例(19)

f
 flyqilong
发布于 2016/02/27 21:52
字数 563
阅读 97
收藏 0
点赞 1
评论 0
public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		// 注意要改版本
		ActionBar actionBar = getActionBar();
		// 设置是否将图标转换为可点击的按钮,并加一个箭头图标,系统默认的图标
		// actionBar.setDisplayHomeAsUpEnabled(true);//这一句就可以实现图片和点击
		actionBar.setHomeButtonEnabled(true);// 转为可点击
		// 不用系统默认的,自己给图标,要API 14版本
		actionBar.setIcon(R.drawable.ie_arrow_normal);
		actionBar.setTitle("返回");
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.main, menu);
		MenuItem item = menu.findItem(R.id.action_more);
		ImageView imageView = (ImageView) item.getActionView();
		imageView.setImageResource(R.drawable.skin_aio_more_nor);
		// 点击这个图片按钮的时候给一个监听事件
		imageView.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// 点击中弹出一个PopupMenu
				PopupMenu popupMenu = new PopupMenu(MainActivity.this, v);// v里面的每一项视图
				popupMenu.getMenu().add(Menu.NONE, 1, Menu.NONE, "添加");
				popupMenu.getMenu().add(Menu.NONE, 2, Menu.NONE, "收藏");
				popupMenu.getMenu().add(Menu.NONE, 3, Menu.NONE, "返回");

				popupMenu
						.setOnMenuItemClickListener(new OnMenuItemClickListener() {

							@Override
							public boolean onMenuItemClick(MenuItem item) {
								switch (item.getItemId()) {
								case 1:
									Toast.makeText(MainActivity.this, "添加", 100)
											.show();
									break;

								case 2:
									Toast.makeText(MainActivity.this, "分享", 100)
											.show();
									break;
								case 3:
									Toast.makeText(MainActivity.this, "返回", 100)
											.show();
									break;
								}
								return false;
							}
						});
				popupMenu.show();
			}
		});
		return super.onCreateOptionsMenu(menu);
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		switch (item.getItemId()) {
		case R.id.action_add:
			Toast.makeText(MainActivity.this, "添加", Toast.LENGTH_SHORT).show();
			break;

		case R.id.action_camera:
			Toast.makeText(MainActivity.this, "照相", Toast.LENGTH_SHORT).show();
			break;
		case R.id.action_call:
			Toast.makeText(MainActivity.this, "打电话", Toast.LENGTH_SHORT).show();
			break;
		case android.R.id.home:// ActionBar的返回图标
			Intent intent = new Intent(this, MainActivity.class);
			intent.addFlags(intent.FLAG_ACTIVITY_CLEAR_TOP);// 将上面的页面清除掉,跟SingleTaskTop差不多的效果
			startActivity(intent);
			break;
		}
		return super.onOptionsItemSelected(item);
	}
}

文件夹下的menu/菜单选项
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/action_add"
        android:icon="@android:drawable/ic_menu_add"
        android:orderInCategory="1"
        android:showAsAction="always"
        android:title=""/>
    <item
        android:id="@+id/action_camera"
        android:icon="@android:drawable/ic_menu_camera"
        android:orderInCategory="1"
        android:showAsAction="always"
        android:title=""/>
    <item
        android:id="@+id/action_call"
        android:icon="@android:drawable/ic_menu_call"
        android:orderInCategory="1"
        android:showAsAction="always"
        android:title=""/>
    <item
        android:id="@+id/action_more"
        android:actionViewClass="android.widget.ImageView"
        android:orderInCategory="1"
        android:showAsAction="always"
        android:title=""/>

</menu>



// // 设置导航模式,在另一Activity实现
// actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);// 下拉列表模式
// List<Map<String, String>> pullList = new ArrayList<Map<String,
// String>>();
// Map<String, String> option1 = new HashMap<String, String>();
// option1.put("option", "首页");
// Map<String, String> option2 = new HashMap<String, String>();
// option2.put("option", "下页");
// Map<String, String> option3 = new HashMap<String, String>();
// option3.put("option", "上页");
// pullList.add(option1);
// pullList.add(option2);
// pullList.add(option3);
// SimpleAdapter adapter = new SimpleAdapter(MainActivity.this,
// pullList, android.R.layout.simple_list_item_1,
// new String[] { "option" }, new int[] { android.R.id.text1 });
// actionBar.setListNavigationCallbacks(adapter,
// new OnNavigationListener() {
//
// @Override
// public boolean onNavigationItemSelected(int itemPosition,
// long itemId) {
// Toast.makeText(MainActivity.this,
// "你点中了第" + itemPosition+1 + "项",
// Toast.LENGTH_SHORT).show();
// return false;
// }
// });


© 著作权归作者所有

共有 人打赏支持
f
粉丝 3
博文 93
码字总数 53900
作品 0
Android工程师
Android第四十一天

1.概念 <1>Android应用中的菜单默认是隐藏的,只有当用户点击手机上的MENU键,系统才会显示菜单。这种菜单叫做选项菜单(Option Menu)。 <2>从3.0开始,Android不要求手机设备上必须提供MEN...

黄晓磊
2016/07/25
4
0
转载:JFrame 创建系统托盘中的图标

import java.awt.AWTException; import java.awt.Image; import java.awt.MenuItem; import java.awt.PopupMenu; import java.awt.SystemTray; import java.awt.Toolkit; import java.awt.Tr......

kernal
2014/12/17
0
0
Android第四十四天

一、菜单 (1)选择菜单(OptionsMenu) 第一种方法: 1、在res目录下建立一个名称是menu的文件夹; 2、在menu下面建立一个XML文件(默认就是menu的类型) 3、在建立的XML文件中添加菜单的选...

黄晓磊
2016/08/30
10
0
Android 用户界面---菜单(Menus 三)

弹出菜单是停靠在一个View上的一个模式菜单。如果View对象下方有空间,那么弹出菜单将显示在停靠对象的下方,否则会显示在上方。这是非常有用的: 1. 给指定内容的操作提供一个溢出式菜单(如...

长平狐
2012/10/16
562
0
Toolbar+DrawerLayout高仿网易新闻客户端,drawerlayout

首先看效果图,网易新闻客户端的特点是双向侧滑,并且左上角的图标会随着菜单的侧滑会有动画效果。 我们采用Toolbar和DrawerLayout实现双向侧滑以及actionbar 在菜单文件里先定义菜单 <menu ...

球球
2016/05/09
113
0
Android之ActionBar学习

关于那个问题:是关于如何生成如下图所示之ActionBar效果: 其实就在官网上就有答案,自己疏忽再加上资料繁多。寻了许久,经过指点。终于找到: To enable split action bar, simply add uiO...

尼莫
2012/10/12
0
1
ActionBar学习笔记(二)

八、在ActionBar上添加导航tab Tabs的应用可以算是非常广泛了,它可以使得用户非常轻松地在你的应用程序中切换不同的视图。而Android官方更加推荐使用ActionBar中提供的Tabs功能,因为它更加...

紫韵
2016/02/21
29
1
Android UI开发第二十四篇——Action Bar

Android UI开发第二十四篇——Action Bar 标签: ActionBarandroidfragmentmenu 2012-10-31 16:11 143916人阅读 评论(29) 收藏 举报 分类: 上图中: logo title icon 目录(?)[+] Action bar...

微笑的江豚
2016/04/07
61
0
Android界面菜单(5)—操作栏

什么是操作栏? 如下图,红色圈选部分为操作栏:左侧为应用程序图标和名称,右侧为菜单 ActionBar 与 OptionMenu 区别 如下图,左边两项为 ActionBar,右边部分为 OptionMenu /res/menu/mai...

iBazinga
2016/11/25
29
0
Android 用户界面---操作栏(Action Bar 一)

操作栏是一个标识应用程序和用户位置的窗口功能,并且给用户提供操作和导航模式。在大多数的需要突出展现用户操作或全局导航的Activity中,你应该使用操作栏,因为操作栏能够跨应用程序给用户...

长平狐
2012/10/16
343
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

shell中的函数、shell中的数组、告警系统需求分析

shell中的函数 格式: 格式: function f_name() { command } 函数必须要放在最前面 示例1(用来打印参数) 示例2(用于定义加法) 示例3(用于显示IP) shell中的数组 shell中的数组1 定义数...

Zhouliang6
48分钟前
2
0
用 Scikit-Learn 和 Pandas 学习线性回归

      对于想深入了解线性回归的童鞋,这里给出一个完整的例子,详细学完这个例子,对用scikit-learn来运行线性回归,评估模型不会有什么问题了。 1. 获取数据,定义问题     没有...

wangxuwei
今天
1
0
MAC安装MAVEN

一:下载maven压缩包(Zip或tar可选),解压压缩包 二:打开终端输入:vim ~/.bash_profile(如果找不到该文件新建一个:touch ./bash_profile) 三:输入i 四:输入maven环境变量配置 MAVEN_HO...

WALK_MAN
今天
0
0
33.iptables备份与恢复 firewalld的9个zone以及操作 service的操作

10.19 iptables规则备份和恢复 10.20 firewalld的9个zone 10.21 firewalld关于zone的操作 10.22 firewalld关于service的操作 10.19 iptables规则备份和恢复: ~1. 保存和备份iptables规则 ~2...

王鑫linux
今天
2
0
大数据教程(2.11):keeperalived+nginx高可用集群搭建教程

上一章节博主为大家介绍了目前大型互联网项目的系统架构体系,相信大家应该注意到其中很重要的一块知识nginx技术,在本节博主将为大家分享nginx的相关技术以及配置过程。 一、nginx相关概念 ...

em_aaron
今天
1
0
Apache Directory Studio连接Weblogic内置LDAP

OBIEE默认使用Weblogic内置LDAP管理用户及组。 要整理已存在的用户及组,此前办法是导出安全数据,文本编辑器打开认证文件,使用正则表达式获取用户及组的信息。 后来想到直接用Apache Dire...

wffger
今天
2
0
HFS

FS,它是一种上传文件的软件。 专为个人用户所设计的 HTTP 档案系统 - Http File Server,如果您觉得架设 FTP Server 太麻烦,那么这个软件可以提供您更方便的档案传输系统,下载后无须安装,...

garkey
今天
1
0
Java IO类库之BufferedInputStream

一、BufferedInputStream介绍 /** * A <code>BufferedInputStream</code> adds * functionality to another input stream-namely, * the ability to buffer the input and to * sup......

老韭菜
今天
0
0
STM 32 窗口看门狗

http://bbs.elecfans.com/jishu_805708_1_1.html https://blog.csdn.net/a1985831055/article/details/77404131...

whoisliang
昨天
1
0
Dubbo解析(六)-服务调用

当dubbo消费方和提供方都发布和引用完成后,第四步就是消费方调用提供方。 还是以dubbo的DemoService举例 -- 提供方<dubbo:application name="demo-provider"/><dubbo:registry address="z...

青离
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部