添加UP导航setDisplayShowHomeEnabled空指针异常

时间:2017-10-21 21:01:49

标签: android android-actionbar uinavigationbar

在尝试启用" UP导航时,我收到(AS)警告和空指针。在一项活动上。

: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.app.ActionBar.setDisplayShowHomeEnabled(boolean)' on a null object reference

我尝试了两种不同的方法(Display Back Arrow on Toolbar Android)但没有成功。

我做错了什么?

public class ViewMyHistory extends AppCompatActivity {

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

        Toolbar appToolbar = (Toolbar) findViewById(R.id.mainToolbar);
        setSupportActionBar(appToolbar);

        //This gives errors
        //getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

        //and so does this
        getSupportActionBar().setDisplayShowHomeEnabled(true);
    }

    @Override
    public boolean onSupportNavigateUp() {
        onBackPressed();
        return true;
    }
}

2 个答案:

答案 0 :(得分:1)

您的代码没问题。唯一可能的问题是,您的布局文件Toolbar中可能没有R.id.mainToolbar ID R.layout.my_requests

如果您不想使用Toolbar,请在AppTheme中使用带有操作栏的appcompat主题作为styles.xml(或您的活动正在使用的任何内容)的父主题例如Theme.AppCompat.Light.DarkActionBar

答案 1 :(得分:0)

您可以使用以下任一方法:

 getSupportActionBar().setDisplayHomeAsUpEnabled(true);
// OR 
 getSupportActionBar().setDefaultDisplayHomeAsUpEnabled(true);