当前位置: 首页 > 面试题库 >

getActionBar()。setDisplayHomeAsUpEnabled(true)引发NullPointerException

吕新
2023-03-14
问题内容

多次询问了这个问题,我已经尝试了全部。但不幸的是,两者都没有为我工作。

我正在尝试实现两个活动之间的导航,这是学习Android应用程序html" target="_blank">开发的一部分。我的最小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>

我有两个活动: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操作栏反向端口。



 类似资料:
  • 首先,我知道以前有人问过这个问题,我花了一个小时查看其他解决方案,主要是从-getActionBar()返回null,但没有一个解决方案有效,所以另一双眼睛可能可以做一些事情。 其他类从其继承的NavigationDrawer类: MainActiviy扩展了上述内容: 导航抽屉。xml styles.xml Activity_Main content_main

  • 我有一个主要活动与ActionBar。在运行时,尽管actionbar对象被初始化为getActionBar(),但我接收到具有以下logcat输出的NPE 主要活动: logcat:

  • 我正在使用Jackson2.2注释@JSONProperty,其中required设置为true。在通过ObjectMapper readValue()方法反序列化不包含该属性的json文件时,不会引发异常。它应该以不同的方式工作还是我错过了什么? 我希望这样做,因为在json文件中没有指定_name,并且需要抛出异常。

  • 问题内容: 之间有什么区别 和 根据这里的回答,据说没有索引属性。我以为正在这样做。 问题答案: 为了便于说明,请考虑以下类: 当您索引class的对象时,field的值将被完全忽略。简而言之,Elasticsearch不了解该领域。它只是供您的客户端应用程序使用,可能用于某些簿记目的。类型的映射定义如下: 请注意该字段存在。如果标记为,则无法在该字段中搜索值,但是可以在搜索请求的匹配文档中检索其

  • 我正在尝试使用Spring-Boot中的注释在java类中为我的集合创建唯一的索引。当我在集合的文档的pojo中的字段上使用时: 其中名称字段包含由英文字母组成的字符串,我想要停止名称字段的重复输入。字段名称不是唯一的,我可以添加具有重复名称字段的文档。要使其工作,我必须使id字段unique=false: 这种方法是否正确,我们是否可以使id字段unique=false并使其他一些字段uniqu

  • 问题内容: 假设我有一个实例: 然后,我使用ExecutorService提交上述任务: 现在,我可以通过取消任务。我了解的是将会中断正在运行此任务的工作线程,例如。但这 仅设置一个标志 来告知工作线程已中断。 我的问题是:如果Runnable已开始运行,实际上如何在继续执行其余代码时停止我的代码?是否在下面定期检查工作线程的中断标志?我的意思是我不明白如何仅通过将中断标志设置为true来取消ru