【问题标题】:Adding UP navigation setDisplayShowHomeEnabled null pointer exception添加 UP 导航 setDisplayShowHomeEnabled 空指针异常
【发布时间】:2017-10-21 21:01:49
【问题描述】:

尝试在活动上启用“向上导航”时,我收到 (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;
    }
}

【问题讨论】:

    标签: android android-actionbar uinavigationbar


    【解决方案1】:

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

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

    【讨论】:

    • 工具栏在那里...<android.support.v7.widget.Toolbar android:id="@+id/mainToolbar" ....
    • @Maxcot 在my_requests.xml中吗?
    【解决方案2】:

    您可以使用其中任何一种:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多