工具栏onBackPressed

时间:2016-03-15 13:38:52

标签: android

我的班级有相机预览。 当我单击后退按钮时,它返回mainClass。如果我点击相机预览按钮,它会返回相机预览并正常工作。

当我单击工具栏后退按钮时,它将返回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();
            }
        });
    }

1 个答案:

答案 0 :(得分: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);
        }
    }