Android 如何使用getSupportActionBar()从另一个类进行更改

Android 如何使用getSupportActionBar()从另一个类进行更改,android,android-actionbar,android-holo-everywhere,Android,Android Actionbar,Android Holo Everywhere,更新:使用工作代码编辑 我有一个类(ColorChanger),在该类中,我试图从其他活动中更改操作栏的颜色,但getSupportActionBar()未在我的ColorChanger类中定义。我怎样才能正确地做到这一点 来自颜色变换器的工作代码: public void changeColor(int newColor, Context context, Activity activity) { this.mActivity = activity; Drawable col

更新:使用工作代码编辑

我有一个类(
ColorChanger
),在该类中,我试图从其他活动中更改操作栏的颜色,但
getSupportActionBar()
未在我的
ColorChanger
类中定义。我怎样才能正确地做到这一点

来自
颜色变换器的工作代码

public void changeColor(int newColor, Context context, Activity activity) {

    this.mActivity = activity;
    Drawable colorDrawable = new ColorDrawable(newColor);
    Drawable bottomDrawable = context.getResources().getDrawable(
            R.drawable.actionbar_bottom);
    LayerDrawable ld = new LayerDrawable(new Drawable[] { colorDrawable,
            bottomDrawable });

    if (oldBackground == null) {

        this.mActivity.getSupportActionBar().setBackgroundDrawable(ld);

    } else {

        TransitionDrawable td = new TransitionDrawable(new Drawable[] {
                oldBackground, ld });

        this.mActivity.getSupportActionBar().setBackgroundDrawable(td);

        td.startTransition(200);

    }

    oldBackground = ld;

    this.mActivity.getSupportActionBar().setDisplayShowTitleEnabled(false);
    this.mActivity.getSupportActionBar().setDisplayShowTitleEnabled(true);

    currentColor = newColor;

}
如果您需要更多代码,请询问。

getSupportActionBar()是SherlockActivity类中的一个方法,如您所见

如果您的类没有扩展SherlockActivity,则不能使用该方法

要使用它,您有两个选项:

1.您可以在扩展SherlockActivity的类中创建ColorChange类作为私有类

2.在构造函数中将SherlockActivity的引用传递给ColorChange类,例如:

public ColorChange(SherlockActivity cActivity){

this.callingActivity = cActivity;

}
然后从你的方法:

this.callingActivity.getSupportActionBar()

希望有帮助

-您的班级没有扩展sherlock活动。在你的类中没有这样的方法。你在使用ActionBarSherlock吗?@BrianRoach
颜色变换器
类没有扩展任何内容,但我想知道如何使用这个类中的
getSupportActionBar()
对扩展sherlock活动的另一个类进行更改(或者仅仅是活动,因为我正在使用holoeverywhere)@Ahmad是的,但在另一个类上,我希望将更改通过活动实例传递到您的Colorchanger,并从中获取支持操作栏。将活动添加到Colorchanger构造函数?这在代码中起作用,但每当我尝试在我的设备上运行此操作时,我在第25行出现错误,它是
Drawable-bottomDrawable=mActivity.getResources().getDrawable(R.Drawable.actionbar\u-bottom)