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

aro*_*r11 5 android android-fragments android-activity android-studio

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

应该使用getSupportActionBar而不是ActionBar名称

有谁知道为什么?

还有任何文档,因为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)));
  }
}
Run Code Online (Sandbox Code Playgroud)

Aza*_*Aza 11

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

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

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

有关更多信息,请查看文档ActionBarActivity,其中告诉您:

getSupportActionBar():支持库版本getActionBar().

  • AS 0.8.9中存在一个错误(此时是当前的),即使您的清单指定API 15+,它也希望您使用不需要的getSupportActionBar. (3认同)