为什么Android Studio告诉我使用getSupportActionBar()而不是getActionBar()?

时间:2014-08-31 23:39:35

标签: android android-activity android-fragments android-studio

只需在这个全新的Android Studio 0.8.6测试版中添加一个非常简单的帮助活动(只是从资源文件中显示一段HTML文本)到一个非常简单的测试应用程序,我收到以下警告,没有任何理由/理由:

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)));
  }
}

1 个答案:

答案 0 :(得分:11)

getSupportActionBar()getActionBar()相同,但来自Android支持库。

Android Studio建议您切换到getSupportActionBar(),因为如果您没有,则您的应用程序不会向后兼容以前版本的Android。

如果您打算向后兼容,最好尽可能使用Android支持库 - 否则您的应用程序可能会在较旧的平台上崩溃。如果您不打算向后兼容,那么您可以自由地忽略此警告。

有关详细信息,请查看docs for ActionBarActivity,其中告诉您:

  

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