getSupportActionBar()。setDisplayHomeAsUpEnabled(true)给出NullPOinterException

时间:2016-07-18 15:29:56

标签: java android android-activity

getSupportActionBar().setDisplayHomeAsUpEnabled(true)提供了NullPOinterException,在我尝试了

的各种组合之后
  1. 活动(AppComatActivity),
  2. 主题(Theme.AppCompat.LightTheme.Holo.Light)和
  3. 向上按钮API(getSupportActionBar()getActionBar()
  4. 我知道这个问题已被多次询问,但请相信我,他们的解决方案都不适合我。

    我的座右铭:

    我只是想为我的儿童活动设置“向上”按钮。

    我已设置的先决条件:

    我在Childife的Manifest文件中设置了以下内容

                android:parentActivityName="com.example.sony.myfirstapplication.MainActivity">
    
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value="com.example.sony.myfirstapplication.MainActivity"
                />
    

    并在我的子活动中使用以下代码

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_show_message);
    
        //receive message
        Intent intent = getIntent();
        TextView txt = (TextView) findViewById(R.id.text_msg_show);
        String msg = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
        txt.setText(msg);
    
        getSupportActionBar().setDisplayHomeAsUpEnabled(true); //Gives NullPointerException
    }
    

    清单文件中的主题:

    <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
    

    Style.xml文件中声明的样式: -

    <style name="AppTheme" parent="@style/Theme.AppCompat.Light">
            <!-- Customize your theme here. -->
            <item name="colorPrimary">@color/colorPrimary</item>
            <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
            <item name="colorAccent">@color/colorAccent</item>
        </style>
    

    注意

    我继承了AppCompatActivity而非ActionBarActivity

    的两项活动

2 个答案:

答案 0 :(得分:2)

您应首先设置工具栏:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
setSupportActionBar.setDisplayHomeAsUpEnabled(true);

答案 1 :(得分:0)

既然你说它没有 CRASH ,那么只需在该行上方添加@SuppressWarnings("null")

否则,请添加:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

第一