我正在尝试使用 getActionBar(); 方法,我收到此错误:所需的 android.support.v7.app.ActionBar 找到 android.app.ActionBar .我该如何纠正此问题?
发生此错误是因为您正在创建一个对象并将其传递给不同的类引用变量。因为getActionManager
给出了android.app.ActionBar
的对象,但您正在尝试将类对象分配给android.support.v7.app.ActionBar
android.app.ActionBar
。
但这两个类提供相同的功能。 当我们的 uses-sdk 最小版本小于 api 11 时,将使用android.support.v7.app.ActionBar
类。要在 api 11 下方获取操作栏的对象,我们需要android.support.v7.app.ActionBar
类对象。
要获取操作栏,您需要遵循以下两种方法之一。
-
import android.support.v7.app.ActionBar
并使用getSupportActionBar()
方法od活性。 -
转到 AndroidManifest.xml 文件并更改
<uses-sdk android:minSdkVersion="11" android:targetSdkVersion="19" />
并导入android.app.ActionBar
并使用getActionBar()
如果支持的 API 级别低于 11,则必须在项目中添加支持 v4 库以使用操作栏。
import android.support.v7.app.ActionBar
如果仅支持 API 级别 11 及更高版本:
import android.app.ActionBar
有关更多信息,请转到官方文档
确保清单文件中的最低 API 级别高于 11。因为包android.support.v7.app.ActionBar
仅在低于 11 的 api 级别中受支持。
因此,如果要使用import android.app.ActionBar
中的操作栏,则必须在清单文件中具有最小 API 级别 11。否则,您必须在项目中添加支持 v4 库,以使用包android.support.v7.app.ActionBar
操作栏。
确保应用具有应用栏或标题栏,请在清单文件或样式中检查应用主题.xml如果你的风格是这样的:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- your style -->
</style>
使用时会很好ActionBar actionbar = getSupportActionBar();
但是,如果按照这样的风格:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- your style-->
</style>
使用时会抛出空异常ActionBar actionbar = getSupportActionBar();
确保使用import android.support.v7.app.ActionBar
如果运行 api 11 及更高
版本import android.app.ActionBar;
此外,如果它声明它已经存在,请务必将其删除