您是继承自ActionBaractivity。因此,您需要使用getSupportActionBar()而不是getActionBar()来获得-提供的appcompat-v7操作栏反向端口。
解决方法多次询问了这个问题,我已经尝试了全部。但不幸的是,两者都没有为我工作。
我正在尝试实现两个活动之间的导航,这是学习Android应用程序开发的一部分。我的最小SDK版本和目标SDK版本分别为11和21(Android5)。我在AndroidManifest.xml中的设置如下所示:
<manifest xmlns:android='http://schemas.android.com/apk/res/android' package='com.example.navigation' android:versionCode='1' android:versionName='1.0' > <uses-sdkandroid:minSdkVersion='11'android:targetSdkVersion='21' /> <applicationandroid: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>
我有两个活动: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'。