某些设备上的setBackgroundDrawable错误

时间:2013-10-30 04:18:59

标签: java android

我正在使用此代码

    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 个答案:

答案 0 :(得分:1)

Action Bar是在Android 3.0中引入的。所以一些运行在以下版本的设备将不支持它。 要支持较低版本的Action Bar,您可以使用支持库。 OR 您可以将套餐中的最低sdk目标设置为11

  1. 使用支持Android 1.6版的开源Action Bar Sherlock
  2. 您可以使用Android版本2.1支持的Action Bar Compat

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

代替那个只使用这一行

refreshImg.setBackgroundResource(R.drawable.refresh_icon);

请参阅此VIEW