首先:

getActionBar().setDisplayShowTitleEnabled(false);

		ActionBar.LayoutParams lp = new ActionBar.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT);
lp.gravity = lp.gravity & ~Gravity.HORIZONTAL_GRAVITY_MASK | Gravity.LEFT;
ActionBarPopupButton popupButton = new ActionBarPopupButton(this);
popupButton.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { @Override
public boolean onMenuItemClick(MenuItem item) {
Intent intent = new Intent();
intent.setClass(MainActivity.this, cls[item.getOrder()]);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
if (item.getOrder() == 0) {
intent.putExtra(Extras.DATE, mDates.get(mViewPager.getCurrentItem()));
}
startActivity(intent);
return false;
}
});
getActionBar().setCustomView(popupButton, lp);
int change = getActionBar().getDisplayOptions() ^ ActionBar.DISPLAY_SHOW_CUSTOM;
getActionBar().setDisplayOptions(change, ActionBar.DISPLAY_SHOW_CUSTOM);

private Class<?>[] cls = new Class[] { HistoryActivity.class, VibrateActivity.class, CircleActivity.class, PersonalActivity.class, DeviceActivity.class };

第二:

public class ActionBarPopupButton extends Button implements OnClickListener {

	private PopupMenu mPopupMenu;

	public ActionBarPopupButton(Context context) {
super(context);
setBackgroundResource(R.drawable.abc_spinner_ab_holo_dark);
setTextAppearance(getContext(), android.R.style.Widget_Spinner);
setText(getContext().getString(R.string.title_activity_detail));
setTextColor(getResources().getColor(R.color.white));
setOnClickListener(this);
mPopupMenu = new PopupMenu(getContext(), this);
mPopupMenu.inflate(R.menu.main_navigation_list);
} @Override
public void onClick(View v) {
mPopupMenu.show();
} public void setOnMenuItemClickListener(OnMenuItemClickListener listener) {
mPopupMenu.setOnMenuItemClickListener(listener);
}
}

setBackgroundResource 图片

setTextAppearance  样式

setText  文本内容

setTextColor   颜色

main_navigation_list  XML

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
android:orderInCategory="0"
android:showAsAction="never"
android:title="@string/title_activity_history"/>
<item
android:orderInCategory="1"
android:showAsAction="never"
android:title="@string/title_activity_vibrate"/>
<item
android:orderInCategory="2"
android:showAsAction="never"
android:title="@string/title_activity_circle_2"/>
<item
android:orderInCategory="3"
android:showAsAction="never"
android:title="@string/title_activity_personal"/>
<item
android:orderInCategory="4"
android:showAsAction="never"
android:title="@string/title_activity_device"/> </menu>

ActionBar点击弹出下拉框操作的更多相关文章

  1. easyui combobox点击输入框弹出下拉框

    由于easyui combobox需要点击下拉箭头才能下拉,不能像select标签那样点击输入框就下拉,所以觉得不太方便,查看了一下,combobox弹出框是一个div,原本想在他的输入框的点击事件中 ...

  2. JQuery autocomplete获得焦点触发弹出下拉框

    需求:autocomplete控件,当点击获得焦点的时候也要弹出下拉列表(autocomplete默认是输入之后才会跟随出下拉列表),下面直接贴代码. js代码: $("#customerN ...

  3. asp.net html 单击按钮弹出下拉框效果

    1.说明 需要引用jquery.js文件,我的页面是在asp.net MVC4 添加的web窗体,其他不多说 直接看代码 2.代码 <%@ Page Language="C#" ...

  4. CSS实现鼠标移入弹出下拉框

    前言 最近比较沉迷CSS,所以我现在来做个鼠标的交互效果 HTML <ul> <li>测试</li> <li>测试</li> <li ...

  5. IOS第二天-新浪微博 - 添加搜索框,弹出下拉菜单 ,代理的使用 ,HWTabBar.h(自定义TabBar)

    ********HWDiscoverViewController.m(发现) - (void)viewDidLoad { [super viewDidLoad]; // 创建搜索框对象 HWSearc ...

  6. jQuery下拉框操作系列$("option:selected",this) &&(锋利的jQuery)

    jQuery下拉框操作系列$("option:selected",this)  &&(锋利的jQuery) <!DOCTYPE html> <ht ...

  7. selenium - 下拉框操作

    # 9. 下拉框操作# (1)等待下拉列表和下拉列表中值存在# (2)在下拉列表中选择一个值 # 三种方式# A. 获取所有的下拉列表值,然后用循环去匹配相同的值 select_by_index(下标 ...

  8. 【android开发】使用PopupWindow实现页面点击顶部弹出下拉菜单

    没有太多花样,也没有很复杂的技术,就是简单的PopupWindow的使用,可以实现点击弹出一个自定义的view,view里可以随便设计,常用的可以放一个listview. demo中我只是一个点击展示 ...

  9. 用css写出下拉框(代码转自wq群)

    做网易云音乐首页时遇到的问题,鼠标指在右上角头像时出现下拉框. <style>/* css*/ #body{ float: left; } #xialakuang{ background- ...

随机推荐

  1. Insert into a Cyclic Sorted List

    Given a node from a cyclic linked list which has been sorted, write a function to insert a value int ...

  2. 51NOD 算法马拉松8

    题目戳这里:51NOD算法马拉松8 某天晚上kpm在玩OSU!之余让我看一下B题...然后我就被坑进了51Nod... A.还是01串 水题..怎么乱写应该都可以.记个前缀和然后枚举就行了.时间复杂度 ...

  3. (转)C++中extern “C”含义深层探索

    (转)C++中extern “C”含义深层探索 转自: http://www.cppblog.com/Macaulish/archive/2008/06/17/53689.html 1.引言 C++语 ...

  4. bzoj 1040: [ZJOI2008]骑士 树形dp

    题目链接 1040: [ZJOI2008]骑士 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 3054  Solved: 1162[Submit][S ...

  5. linux cpu亲和性设置

    1.设置进程的cpu亲和性程序如下, #Using:g++ setCpuAffinity.c -o setCpuAffinity #include<sys/types.h> #includ ...

  6. asp.net mvc重写RequestValidator

    /// <summary> /// <httpRuntime requestValidationType="xxx.CustomRequestValidator" ...

  7. Codecs是以plugin的形式被调用的(显示中文的codec plugin文件是qcncodecs4.dll),可静态载入和动态载入

    作为非英语国家人员开发的类库,QT有充分的理由优先考虑支持Unicode和各国自定义字库编码.大家也知道了QT对软件Internationalization有一套完整的开发模型,包括专门为此写的lin ...

  8. elk 分布式数据同步

    zjtest7-redis:/elk/elasticsearch/data/es_cluster/nodes/0/indices/library# strings ./1/index/_3.cfs | ...

  9. poj 2192 Zipper(区间dp)

    题目链接:http://poj.org/problem?id=2192 思路分析:该问题可以看做dp问题,同时也可以使用dfs搜索求解,这里使用dp解法: 设字符串StrA[0, 1, …, n]和S ...

  10. C# Best Practices - Creating Good Methods

    How to Define a Method Identify the problem => Define the single purpose => Specify the inputs ...