2016-03-15 2 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 = ок

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); 
     } 
    } 
Смежные вопросы