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

相关问题