首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用ActionBarSherlock向ActionBar添加按钮

答案

要在ActionBarSherlock中向ActionBar添加按钮,您需要遵循以下步骤:

  1. res/layout/目录下创建一个XML布局文件(例如:action_bar_button.xml),并添加一个Button控件。
代码语言:xml
复制
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:id="@+id/action_bar_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentBottom="true"
        android:text="Button at the bottom" />

</RelativeLayout>
  1. 在您的Activity或Fragment的onCreate()方法中,通过ActionBarSherlock提供的setSupportActionbar()方法来设置ActionBar。
代码语言:java
复制
import com.actionbarsherlock.app.SherlockActivity;
import com.actionbarsherlock.view.ActionMode;

...

public class MainActivity extends SherlockActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Set the action bar
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setHomeButtonEnabled(true);
        getSupportActionBar().setTitle("My Title");
    }
}
  1. res/values/目录下创建一个名为action_mode_theme.xml的文件,并添加以下内容:
代码语言:xml
复制
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="Theme.Sherlock.Light" parent="Theme.Sherlock.Light.DarkActionBar">
        <item name="actionBarStyle">@style/Widget.Sherlock.Light.ActionBar.Solid.Inverse</item>
        <item name="actionBarTabStyle">@style/Widget.Sherlock.Light.ActionBar.TabView.Inverse</item>
        <item name="actionBarItemBackground">@drawable/abs__item_background_holo_light</item>
        <item name="actionModeStyle">@style/Widget.Sherlock.Light.ActionMode.Inverse</item>
        <item name="actionModeSplitBackground">@drawable/abs__action_bar_item_split_background_holo_light</item>
        <item name="actionModeCloseButtonStyle">@style/Widget.Sherlock.Light.ActionMode.CloseButton.Inverse</item>
    </style>
</resources>
  1. 在您的Activity或Fragment的onCreateActionMode()方法中,通过ActionBarSherlock提供的buildActionMode()方法来创建一个操作模式。
代码语言:java
复制

import com.actionbarsherlock.app.SherlockActionMode;

import com.actionbarsherlock.app.SherlockActivity;

...

public class MainActivity extends SherlockActivity {

代码语言:txt
复制
@Override
代码语言:txt
复制
protected void onCreate(Bundle savedInstanceState) {
代码语言:txt
复制
    super.onCreate(savedInstanceState);
代码语言:txt
复制
    setContentView(R.layout.activity_main);
代码语言:txt
复制
    // Set the action bar
代码语言:txt
复制
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
代码语言:txt
复制
    getSupportActionBar().setHomeButtonEnabled(true);
代码语言:txt
复制
    getSupportActionBar().setTitle("My Title");
代码语言:txt
复制
    // Create the action mode
代码语言:txt
复制
    mActionMode = getSupportActionBar().startActionMode(new MyActionMode(this));
代码语言:txt
复制
}
代码语言:txt
复制
@Override
代码语言:txt
复制
public void onDestroyActionMode(ActionMode mode) {
代码语言:txt
复制
    mActionMode = null;
代码语言:txt
复制
}
代码语言:txt
复制
private static class MyActionMode implements ActionMode.Callback {
代码语言:txt
复制
    private final SherlockActivity mActivity;
代码语言:txt
复制
    private final ActionBarSherlock mActionBar;
代码语言:txt
复制
    private final View mCustomView;
代码语言:txt
复制
    private final Menu mMenu;
代码语言:txt
复制
    public MyActionMode(SherlockActivity activity) {
代码语言:txt
复制
        mActivity = activity;
代码语言:txt
复制
        mActionBar = activity.getSupportActionBar();
代码语言:txt
复制
        mCustomView = LayoutInflater.from(mActivity).inflate(R.layout.action_mode_custom, null);
代码语言:txt
复制
        mMenu = mActivity.getMenu();
代码语言:txt
复制
    }
代码语言:txt
复制
    @Override
代码语言:txt
复制
    public boolean onCreateActionMode(ActionMode mode, Menu menu) {
代码语言:txt
复制
        mActionBar
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android 2.x中使用actionbar - Actionbarsherlock

随着Android 4.0和Android 4.2 的发布和慢慢的推广开来,很多应用也开始使用Google推广的UI设计,而ActionBar是其中相当重要的一部分。...无奈google没有发布3.0之前版本的ActionBar的兼容包。还好网上有提供开源的别人开发的,ActionBarShelock,简称ABS....ABS的还有一项值得一提的优点就是,如果你在3.0以上的机子上使用,那么它会调用系统原生的ActionBar。...另外它的使用方法和系统自身的方法相当相似,如果你ActionBar本身已经很熟悉了,那么ABS也能很快上手。 http://actionbarsherlock.com/下载对应的压缩包 2....4.要使用Actionbar要继承sherlockactivity,在配置文件中声明activity时,要添加Theme设置才行,而且只能是三种或parent是这三种。

59250

Android 2.x中使用actionbar - Actionbarsherlock (2)

先前有一个项目,是基于android4.0来开发,使用到了Fragment及ActionBar,没打算支持android2.1-android2.3系列版本 写完之后,我将此应用发布到百度应用,一天以后...2.1的模拟器,运行应用,果然一样的"强制关闭"错误,查看了下错误信息,果然是因为Fragment,ActionBar在2.x下不支持所引起,正好前段时间了解到ActionBarSherlock可以在...2.x及4.x等各版本支持Fragment,ActionBar,于是特意使用ActionBarSherlock对项目进行了升级 升级步骤 1.在项目中add library。...至此,我们就能在项目中使用abs 的 actionbar了 3.修改AndroidManifest.xml,添加或修改代码,如下所示 <uses-sdk android:minSdkVersion...actionBar样式来显示界面,不然会显示为菜单样式 4.修改相应类 相应类的对应关系 android.app.Activity->com.actionbarsherlock.app.SherlockActivity

76060
  • 下拉刷新、二维码

    1.单纯的通知 2.通知+传值 步骤: 1.定义接口,以及接口方法 2.定义接口对象 3.在某一个地方.接口对象调用接口方法 4.暴露接口对象(构造方法,setter方法) AsyncTask 基本使用...setOnCheckedChangeListener(OnCheckedChangeListener listener) { mOnCheckedChangeListener = listener; } 全局异常处理 actionbarsherlock...actionBar版本兼容库.我们可以在2.1以下也是用actionbar actionBar = getSupportActionBar();//得到actionbar, actionBar.setDisplayHomeAsUpEnabled...logo 几个actionBar的区别 actionbarsherlock->actionbar-->都支持-->2.1以下系统还得使用,actionbarsherlock提供了很多的样式; v7-->...二维码横竖屏切换 图片横着切 二维码动画 仿微信扫描效果 使用zxing扫描二维码 认识二维码 二维码的范围 二维码容错级别 二维码嵌入logo 使用 先找到按钮,然后调用 //1.启动扫描界面

    37620

    2.下拉刷新、二维码

    ExceptionHandler.code2String(exception2code); Toast.makeText(getApplicationContext(), code2String, 0).show(); } actionbarsherlock...actionBar版本兼容库.我们可以在2.1以下也是用actionbar actionBar = getSupportActionBar();//得到actionbar, actionBar.setDisplayHomeAsUpEnabled...actionBar.setTitle("56期");//修改title // actionBar.setIcon(R.drawable.icon_download);//修改...logo 几个actionBar的区别 actionbarsherlock->actionbar-->都支持-->2.1以下系统还得使用,actionbarsherlock提供了很多的样式; v7-->...二维码横竖屏切换 图片横着切 二维码动画 仿微信扫描效果 使用zxing扫描二维码 认识二维码 二维码的范围 二维码容错级别 二维码嵌入logo 使用 先找到按钮,然后调用 //1.启动扫描界面

    91370

    Android产品开发中常用的一些开源项目

    像Google、Facebook这类的大公司都在使用很多的开源产品,比如我们常见的Apache系列、我们使用的Eclipse IDE等等。...在我自己的产品开发中,我也使用到了一些常用的开源项目,下面就介绍一下我使用的一些Android开源项目。 1.android-wheel 还记得iPhone上经典的日期选择滑轮组件吗?...8.ActionBarSherlock 从 Android3.0开始增加了ActionBar,它能帮助开发者定制菜单,导航等,非常方便,但是低版本的用不了,所以ActionBarSherlock就出世了...,它能让我们在低版本的手机上也可以使用ActionBar 开源项目地址:https://github.com/JakeWharton/ActionBarSherlock ?...开源项目林林总总很多,今天说的都是我常用的,多去一些注入GitHub,GoogleCode等网站,可以发现很多开源的优秀项目,这些我们可以先了解收集起来,等我们产品中有类似的功能了,可以拿来使用,帮你更快的完成工作

    48110

    Groovy: 使用ExpandoMetaClass动态地添加方法

    使用ExpandoMetaClass动态地添加方法 我们可以动态地Groovy中的类添加新的行为,比如方法。...所以这意味着一个方法不会添加到源代码中的类定义中,而是添加到应用程序已经运行的类定义中。 为此,Groovy为所有类添加了一个metaClass属性。...我们可以将方法(也是静态的),属性,构造函数分配给metaClass属性,并将定义的行为动态添加到类定义中。 在我们添加了行为之后,我们可以创建类的新实例并调用方法,构造函数并像以前一样访问属性。...action: rightShift is >> list >> 'one' assert 2 == list.size() assert ['three', 'four'] == list //我们还可以特定实例而不是类添加行为...//注意我们使用实例列表而不是类List来分配 //方法groovy到metaClass属性。

    2.1K10

    使用Solr您的站点添加自定义搜索

    用户可以通过http请求,搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。 文档通过Http利用XML 加到一个搜索集合中。...没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器。...本教程需要您更新系统和软件包存储库并进行安装wget工具,您可以参考我们社区的如何使用wget。 注意 本教程中的步骤需要root权限。请确保以root身份或使用sudo前缀运行以下步骤。...安装Java 安装Java 8 JDK: Debian和Ubuntu 添加Java 8存储库,下载GPG密钥并安装Java 8。...重启solr服务: systemctl restart solr 您还可以使用此过程来保护Solr中的其他网页。

    1.2K10

    使用批处理命令win server AD域中批量添加用户实现

    因为要用个批处理命令在Windows Server里面批量添加域用户,所以需要使用批处理命令。 我这篇是纯新手教程,在百度上搜了一些批处理命令感觉属于进阶教程,研究了两天才完成我要完成的目标。...-pwd %3 -display %4 -dept %5 -company %6 -office %7 -tel %8 -disabled no 下面对这条语句进行分析: dsadd user :域中添加用户...-disabled no :直接可用的账户,如果是yes需要解锁账户才能使用。 将以上命令设置为一个bat文件然后可以运行cmd进行调用这个bat文件。...因为需要传入参数,所以不能直接点击bat文件使用。...成功添加用户。 我为何要这么做因为另一个人在网站上来添加用户,每次调用我的bat传入参数就可以添加用户,他不需要去AD域中一个个添加很方便。

    2.1K10

    如何使用CsWhispersC#项目添加DInvoke和间接系统调用方法

    CsWhispers是一款针对C#编程项目的源代码生成工具,该工具基于C#开发,并且完全开源,可以帮助广大研究人员已有的C#项目添加D/Invoke和间接系统调用方法源码。...NtProtectVirtualMemory NtQueryVirtualMemory NtReadVirtualMemory NtUnmapViewOfSection NtWriteVirtualMemory 工具下载 广大研究人员可以直接使用下列命令将该项目源码克隆至本地...工具使用 首先,我们需要将最新版本的NuGet包添加到你的项目中,并允许不安全的代码: ...类的继承使用 该工具所生成的全部代码都会被添加到CsWhispers.Syscalls类中,我们可以通过继承这个类来添加我们自己的API。...比如说,我们可以创建一个名为MyAPIs.cs的文件,并添加下列代码: namespace CsWhispers; public static partial class Syscalls {

    13510

    actionbar完全解析(一)

    使用ActionBar的好处是,它可以给提供一种全局统一的UI界面,使得用户在使用任何一款软件时都懂得该如何操作,并且ActionBar还可以自动适应各种不同大小的屏幕。...下面是一张使用ActionBar的界面截图: ? 其中,[1]是ActionBar的图标,[2]是两个action按钮,[3]是overflow按钮。...添加和移除Action Bar ActionBar添加非常简单,只需要在AndroidManifest.xml中指定Application或Activity的theme是Theme.Holo或其子类就可以了...添加Action按钮 ActionBar还可以根据应用程序当前的功能来提供与其相关的Action按钮,这些按钮都会以图标或文字的形式直接显示在ActionBar上。...添加Action View ActionView是一种可以在ActionBar中替换Action按钮的控件,它可以允许用户在不切换界面的情况下通过ActionBar完成一些较为丰富的操作。

    1.1K100

    Android菜单的定义及ActionBar的实现

    添加“普通菜单项” menu.add(0, PLAIN_ITEM, Menu.NONE, "普通菜单项"); // menu中添加“字体颜色”的子菜单 SubMenu colorMenu =...该方法会传入一个menu对象,利用该对象的add()方法即可添加子菜单。同样地,子菜单也可以通过add()方法为自身添加菜单项。...如上图所示的带有标题和两个按钮的叫做ActionBar。是从安卓3.0开始被介绍使用的。系统默认使用ActionBar作为工具栏。ActionBar中的item可以显示为两种——按钮和溢出菜单。...可以说其是ActionBar的一部分。也可以说,其中的菜单项,可以在ActionBar中作为按钮显示出来(通过设置showAsAction的值来实现)。...如上面的代码中两个都定义为IfRoom,则会显示为两个按钮。 “never”,顾名思义,就是不显示按钮。全部浓缩在溢出菜单中。 “withText”也就是显示按钮时跟随文字。

    1.2K20
    领券