为啥 Android Studio 告诉我使用 getSupportActionBar() 而不是 getActionBar()?
Posted
技术标签:
【中文标题】为啥 Android Studio 告诉我使用 getSupportActionBar() 而不是 getActionBar()?【英文标题】:Why is Android Studio telling me to use getSupportActionBar() instead of getActionBar()?为什么 Android Studio 告诉我使用 getSupportActionBar() 而不是 getActionBar()? 【发布时间】:2014-10-25 04:13:18 【问题描述】:只需在这个新奇的 android Studio 0.8.6 beta 中添加一个非常简单的帮助活动(仅显示资源文件中的 html 文本块)到一个非常简单的测试应用程序,我就会收到以下警告,没有提供任何理由/理由:
有人知道为什么吗?
还有任何文档,因为 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】:getSupportActionBar()
与getActionBar()
相同,但来自 Android 支持库。
Android Studio 建议您切换到 getSupportActionBar()
,因为如果您不这样做,您的应用程序将无法向后兼容以前的 Android 版本。
如果您打算向后兼容,最好尽可能使用 Android 支持库 - 否则您的应用程序可能会在旧平台上崩溃。如果您不打算向后兼容,则可以忽略此警告。
有关更多信息,请查看docs for ActionBarActivity
,其中告诉您:
getSupportActionBar()
:支持库版本getActionBar
()。
【讨论】:
谢谢,关于使用支持类有什么官方的(除了新工具中弹出的模糊警告)吗?我问,因为 droid 网站上的文档和示例仍然使用原始文档。 @arober11 老实说,来自 dev.android 的 the Support Library page 是一个很好的起点——老实说,其中大部分只是关注布局的组织和处理方式。大多数情况下,Android Studio 会警告您,但如果您正在使用片段和布局做一些大事,最好检查一下。 AS 0.8.9(目前是当前版本)中有一个错误,即使您的清单指定 API 15+,它也希望您使用不需要的 getSupportActionBar。 感谢您指出这是一个错误。我已经想知道如果您配置为使用 API 级别 > 10(在我的情况下为 16),为什么使用 SupportActionBar 应该是一个好习惯。 Android 编程有时很混乱。以上是关于为啥 Android Studio 告诉我使用 getSupportActionBar() 而不是 getActionBar()?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 Visual Studio 告诉我需要引用 System.Private.CoreLib?
为啥 Game Maker Studio 告诉我我的 if 语句不起作用?
Android Studio [JDBC]:为啥我无法访问数据库
颤振给我错误(不知道为啥)(使用颤振和Android Studio)