2016-03-15 103 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); 
     } 
    }