2016-03-15 92 views
0

我在我的課堂上有一個相機預覽。 當我點擊返回按鈕時,它返回到mainClass。如果我點擊相機預覽按鈕,它將返回到相機預覽並且正常工作。工具欄onBackPressed

當我點擊工具欄後退按鈕時,它返回到mainClass。如果我點擊相機預覽按鈕,它會顯示此錯誤。

FATAL EXCEPTION: main 
03-16 10:33:00.271 1916-1916/org.example.ricardo.tcc2 E/AndroidRuntime:  Process: org.example.ricardo.tcc2, PID: 1916 
03-16 10:33:00.271 1916-1916/org.example.ricardo.tcc2 E/AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.hardware.Camera.setPreviewDisplay(android.view.SurfaceHolder)' on a null object reference 

MainClass - > previewClass - > backPressed - > MainClass - > previewClass = OK

MainClass - > previewClass - > toolbarBack - > MainClass - > previewClass =錯誤

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

    if (getSupportActionBar() != null){ 
     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
     // getSupportActionBar().setDisplayShowHomeEnabled(true); 
     toolbar.setNavigationOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       onBackPressed(); 
      } 
     }); 
    } 

回答

0

嘗試下面。這將完成當前活動並返回到上一個活動工具欄上的後退按鈕。按

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_first); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 
     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
     getSupportActionBar().setHomeButtonEnabled(true); 
     ....................... 
    } 

@Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
      case android.R.id.home: 
       this.finish(); 
       return true; 
      default: 
       return super.onOptionsItemSelected(item); 
     } 
    }