android - 如何使用 Android Activity 修复 "Call requires API level 11"?

标签 android eclipse

我刚开始做Android开发, 或多或少遵循http://developer.android.com/training/basics/firstapp/starting-activity.html教程, 有一件事一直困扰着我: 我有两个类,都是使用“Android Activity”创建向导创建的:

public class PlacesActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_places);
        // I manually commented out the following line to get it to compile.
        // getActionBar().setDisplayHomeAsUpEnabled(true);
    }
    // ... other methods
}

public class ShowOnePlace extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_show_one_place);
        getActionBar().setDisplayHomeAsUpEnabled(true);
    }
    // ... other methods
}

Eclipse 一直给我以下错误:

Call requires API level 11 (current min is 8): android.app.Activity#getActionBar

Call requires API level 11 (current min is 8): android.app.ActionBar#setDisplayHomeAsUpEnabled

直到我注释掉其中的一个(如上所示)。 现在应用程序似乎可以在我的 Android 设备上编译和运行 没有错误。 (好吧,至少没有那个错误)。

所以:

  • 为什么 getActionBar().setDisplayHomeAsUpEnabled(true); 在一个类中给出了该错误,但完全相同的行在另一个类中不是错误——甚至不是警告?
  • “Android Activity”创建向导中是否存在错误,并且 getActionBar().setDisplayHomeAsUpEnabled(true); 语句在一个 Activity 中是错误的,但在另一个 Activity 中却完全正常?
  • Eclipse Lint 中是否存在错误,并且该声明实际上在两个 Activity 中都是正确的(或者可能在两个 Activity 中都是错误的)?
  • 我该怎么做才能在不将 minSdkVersion="8"更改为 minSdkVersion="11"的情况下解决此问题?我的印象是“android-support-v4.jar”文件是一个兼容库,它在版本 8 设备上运行以处理在版本 11 设备中 native 处理的内容。
  • 当我看到此错误时真正正确的做法是什么?

最佳答案

使用 getSupportActionBar() 而不是 getActionBar()。这将提供 ActionBar API 级别低于 11 的功能。

关于android - 如何使用 Android Activity 修复 "Call requires API level 11"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13654039/

相关文章:

android - 是否可以从 Activity 文件中为 LinearLayout 设置背景?

Eclipse 文件搜索多次找到同一个文件

javascript - Eclipse 项目文件夹

java - 如何获取 ComboFieldEditor 的值?

android - 每轮for循环的不同图像

java - 如何从 phonegap 和 android 访问相同的 sqlite 数据库?

android - 使用 react 抽屉导航在 iOS 上 react native 崩溃

android - 如何在Android中使用pdfbox显示PDF文档的内容

php - 防止 xdebug 在索引文件的第一行中断

java - 更快地查看代码结果的方法