2014-08-31 145 views
5

只需添加一個非常簡單的幫助活動(簡單地顯示一段資源文件中的HTML文本),再到一個非常簡單的測試應用程序,在這個新的Android Studio 0.8.6測試版中,我收到以下警告,有沒有提供理由/理由:爲什麼Android Studio會告訴我使用getSupportActionBar()而不是getActionBar()?

Should use getSupportActionBar instead of ActionBar name

有誰知道爲什麼嗎?

也有任何文檔,因爲Android Studio沒有提供任何文檔,並且無法在android網站上找到任何特定的文檔。

如果有警告的理由,有人可以請我指出一個完整的例子,因爲這個類幾乎是完全通用的/大部分的例子都圍繞着例子。

public class HelpActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_help); 

    ActionBar actionBar = getActionBar(); 
    actionBar.setTitle(getString(R.string.action_help)); 

    TextView helpText = (TextView) findViewById(R.id.help_text); 
    helpText.setText(Html.fromHtml(getString(R.string.help_markup))); 
    } 
} 

回答

11

getSupportActionBar()相同getActionBar(),而是來自Android的支持庫。

Android Studio建議您切換到getSupportActionBar(),因爲如果您沒有這樣做,那麼您的應用程序將不會與以前版本的Android向後兼容。

如果您打算向後兼容,儘可能使用Android支持庫是一種很好的做法 - 否則您的應用程序可能會在較早的平臺上崩潰。如果你不打算向後兼容,那麼你可以自由地忽略這個警告。

欲瞭解更多信息,請看看docs for ActionBarActivity,其中會告訴你:

getSupportActionBar():支持的getActionBar庫版本()。

+0

謝謝,有什麼官方的(除了在新工具中彈出的晦澀的警告)關於使用支持類?我問,作爲在Droid網站上的文檔和例子仍然使用原來的。 – arober11 2014-08-31 23:53:16

+0

@ arober11開始的一個好地方是,誠實地說,來自dev.android的[支持庫頁面](http://developer.android.com/tools/support-library/index.html) - 這其中大部分都是誠實的佈局如何組織和處理。大多數情況下,Android Studio會警告您,但如果您在碎片和佈局方面做了大量工作,最好檢查一下。 – Zyerah 2014-08-31 23:55:13

+3

即使您的清單指定了API 15+,它也希望您使用不需要的getSupportActionBar,但AS 0.8.9(此時爲當前版本)中存在一個錯誤。 – 2014-10-02 18:00:56

相關問題