java - getActionBar().setDisplayHomeAsUpEnabled(true) 抛出 NullPointerException

标签 java android

这个问题在 stackoverflow 被问了好几次,我都试过了。但不幸的是,两者都不适合我。

作为学习 Android 应用程序开发的一部分,我正在尝试实现两个 Activity 之间的导航。我的 minium SDK 和目标 SDK 版本分别是 11 和 21 (Android 5)。我在 AndroidManifest.xml 中的设置如下所示:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.navigation"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="11"
        android:targetSdkVersion="21" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
             >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity 
            android:name=".DetailActivity" >       
        </activity>
    </application>
</manifest>

我有两个 Activity :MainActivity 和 DetailActivity。当我单击 MainActivity 中的按钮时,应用程序成功打开了 DetailActivity。但是当我尝试使用以下代码启用后退按钮时,它返回 NullPointerExcepion:

getActionBar().setDisplayHomeAsUpEnabled(true);

我的两个类都扩展了 ActionBarActivity。

在 MainActivity.java 中:

public class MainActivity extends ActionBarActivity {
...
}

在DetailActivity.java中:

public class DetailActivity extends ActionBarActivity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_detail);

        getActionBar().setDisplayHomeAsUpEnabled(true); // returns null pointer
}

我也尝试过更改主题。例如,android:theme="@android:style/Theme.Holo.Light"

最佳答案

您继承自 ActionBarActivity。因此,您需要使用 getSupportActionBar() 而不是 getActionBar() 来获取 appcompat-v7 提供的操作栏后向端口。

关于java - getActionBar().setDisplayHomeAsUpEnabled(true) 抛出 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27078476/

相关文章:

java - 未找到 MobileAds 类

java - 为什么 KeyListener 中需要 keyPressed()、KeyRelesed 和 keyTyped()? - java

java - 如何在调用 Action 监听器时显示我的 JPanel

java - 在读取和写入文件时避免丢失换行符 (\n)

Android 添加 native 支持 - Unresolved jni.h、android/log.h 等

android - android TextInputLayout 中的表单验证无法正常工作

java - 使用 POST 发送 xml 文件并在 php 中接收

java - 将自定义对象的 ArrayList 写入文件

android - java.lang.NoClassDefFoundError : Failed resolution of: Lcom/bumptech/glide/Glide;

java - 使用 Java 代码终止/停止应用程序