这个问题在 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/