簡體   English   中英

在某些設備上發生setBackgroundDrawable錯誤

[英]setBackgroundDrawable error on some devices

我正在使用此代碼

    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. 

Action Bar是在Android 3.0中引入的。 因此,某些在以下版本上運行的設備將不支持它。 要支持較低版本的操作欄,您可以使用支持庫。 或者,您可以將清單中的最小sdk目標設置為11

  1. 使用從Android版本1.6開始支持的開源動作欄Sherlock
  2. 您可以使用從Android 2.1版開始支持的Action Bar Compat

根據文檔,僅在Android 3.0(API級別11)中添加了操作欄API。 為了在較低版本中使用操作欄,我們必須使用支持庫。 http://developer.android.com/training/basics/actionbar/styling.html-本文檔將通過定義“ android:style / Theme.Holo.Light”子主題並對其進行自定義來幫助您設置操作欄樣式根據您的要求。

有些某些api級別無法使用某些方法。 雖然有些可用。 為了避免此類問題,使用這些方法時閱讀文檔始終是個好習慣。 即使在使用eclipse的情況下,他們也會提到該方法來自api級別1(再次示例)或api級別11。在此基礎上,獲取sdk int版本,並在if條件內使用您希望使用的方法。

代替它,只需使用此行

refreshImg.setBackgroundResource(R.drawable.refresh_icon);

並引用此視圖

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM