从另一个活动正确打开具有Fragment Manger的活动

时间:2016-06-30 14:34:34

标签: java android android-fragments

我有以下源代码:

    private void initToolbars() {
    Toolbar toolbarBottom = (Toolbar) findViewById(R.id.toolbar_bottom);
    if (toolbarBottom != null) {
        toolbarBottom.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem item) {
                switch (item.getItemId()) {
                    case R.id.takePhoto:
                        Intent takePhotoIntent = new Intent(NewDocuActivity.this, TakePhotoActivity.class);
                        startActivity(takePhotoIntent);
                }
                return true;
            }
        });
        // Inflate a menu to be displayed in the toolbar
        toolbarBottom.inflateMenu(R.menu.newdocu_toolbar);
    }
}

TakePhotoActivity的OnCreate方法有以下源代码:

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_take_photo);

    if (null == savedInstanceState) {
        getFragmentManager().beginTransaction()
                .replace(R.id.container, Camera2BasicFragment.newInstance())
                .commit();
    }
}

如果我运行应用程序,则会发生错误:

  

无法启动活动ComponentInfo {com.example.test / com.example.test.TakePhotoActivity}:java.lang.NullPointerException:尝试调用虚方法' void android.view.View.setOnClickListener(android。 view.View $ OnClickListener)'在空对象引用上

R.id.container只是一个FrameLayout。如果我只在应用程序中运行TakePhotoActivity,它就可以运行。

从initToolBars方法打开TakePhotoActivity的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

你在Camera2BasicFragment.java第414行调用(item).setOnClickListener(...)吗?看起来像(item)是null。