2013-10-30 137 views
1

我使用的,因爲一些設備的API問題這段代碼在某些設備上setBackgroundDrawable錯誤

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

不支持我我如何去改變的setBackground像這樣

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

這使我這個錯誤

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

在哪些設備你所面對的問題?他們是Android版本特定的嗎?請詳細說明。 –

+0

samsung tablet 10.1安卓版本3.1 – micky

+1

當然,在ActionBar類中沒有setBackground方法。你必須遵循@geet建議的內容。 –

回答

1

操作欄在Android 3.0的推出。所以一些運行在低於​​版本的設備將不支持它。 要支持較低版本的Action Bar,你可以使用Support Libraries。 OR您可以在清單以11設定最低SDK目標。

  1. 使用開源Action Bar Sherlock庫,從Android版支持1.6
  2. 您可以使用Action Bar Compat庫,從Android版本支持2.1
+0

之間我改變了sdk的目標也一樣。我會嘗試使用你建議的庫 – micky

0

按文檔,操作欄API中的Android 3.0(API只添加11級)。 爲了在較低版本中使用操作欄,我們必須使用支持庫。 http://developer.android.com/training/basics/actionbar/styling.html - 這個文檔將幫助您通過定義的子主題,以造型操作欄「機器人:風格/ Theme.Holo.Light」,並自定義爲您的要求。

+0

我很新的android。無法在我的代碼中合併這個。謝謝你在 – micky

0

有一些方法,這些方法不能從某些特定的API級別。雖然有些可用。爲了防止這類問題,在使用這些方法時閱讀文檔總是很好或適當的。例如,即使在使用eclipse時,他們也會提到該方法來自api級別1(同樣是一個示例)或api級別11.基於此,獲取sdk int版本並在if條件中使用您希望使用的方法。

0

代替的,只是使用此行

refreshImg.setBackgroundResource(R.drawable.refresh_icon); 

,並參考本VIEW

+0

什麼是'refreshImg'和'refresh_icon'凸輪從哪裏來的? –

+0

'refresh_icon'意味着你的可繪製圖像就像這個'barlist'和'refreshImg'那就是我們可以實現imageview來代替你可以實現我們想要的東西像textview,imageview,.......... – NagarjunaReddy

相關問題