1

我正在使用此代码

    getActivity().getActionBar()
    .setBackgroundDrawable(getResources().getDrawable(R.drawable.barlist));

由于 api 问题,某些设备不支持我将如何更改为 setBackground 之类的东西

getActivity().getActionBar()
        .setBackground(getResources().getDrawable(R.drawable.barlist));

这导致我这个错误

The method setBackground(Drawable) is undefined for the type ActionBar. 
4

4 回答 4

1

操作栏是在 Android 3.0 中引入的。因此,某些在低于版本的设备上运行将不支持它。要支持较低版本的操作栏,您可以使用支持库。或者您可以将清单中的最小 sdk 目标设置为11.

  1. 使用从 Android 版本 1.6 开始支持的开源Action Bar Sherlock
  2. 您可以使用从 Android 版本 2.1 开始支持的Action Bar Compat
于 2013-10-30T04:43:02.327 回答
0

根据文档,操作栏 API 仅在 Android 3.0(API 级别 11)中添加。为了在较低版本中使用操作栏,我们必须使用支持库。 http://developer.android.com/training/basics/actionbar/styling.html - 本文档将帮助您通过定义 'android:style/Theme.Holo.Light' 的子主题来设置操作栏的样式并对其进行自定义作为你的要求。

于 2013-10-30T04:30:41.863 回答
0

有些方法在某些特定的 api 级别中不可用。虽然有些可用。为了防止此类问题,在使用这些方法时阅读文档总是好的或适当的。例如,即使在使用 eclipse 时,他们也会提到该方法来自 api 级别 1(又是一个示例)或 api 级别 11。基于此,获取 sdk int 版本并在 if 条件内使用您希望使用的方法.

于 2013-10-30T05:01:29.243 回答
0

取而代之的是使用这条线

refreshImg.setBackgroundResource(R.drawable.refresh_icon);

并参考此视图

于 2013-10-30T05:06:44.490 回答