Java 使用片段管理器从其他活动中正确打开活动

Java 使用片段管理器从其他活动中正确打开活动,java,android,android-fragments,Java,Android,Android Fragments,我有以下源代码: private void initToolbars() { Toolbar toolbarBottom = (Toolbar) findViewById(R.id.toolbar_bottom); if (toolbarBottom != null) { toolbarBottom.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {

我有以下源代码:

    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);
    }
}
    @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();
    }
}
TakePhotoActivity的OnCreate方法具有以下源代码:

    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);
    }
}
    @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();
    }
}
如果我运行应用程序,则会出现以下错误:

无法启动活动组件信息{com.example.test/com.example.test.TakePhotoActivity}:java.lang.NullPointerException:尝试对空对象引用调用虚拟方法“void android.view.view.setOnClickListener(android.view.view$OnClickListener)”

R.id.container只是一个框架布局。如果我只在应用程序中运行TakePhotoActivity,它就会工作


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

在Camera2BasicFragment.java第414行中调用(item).setOnClickListener(…)吗?(项)似乎为空。

是否在Camera2BasicFragment.java第414行中调用(项).setOnClickListener(…)?看起来(项)为空。

发布整个堆栈跟踪。然后检查您可以在哪里分配OnClickListener。我看不出您在哪里分配
setOnClickListener
我没有setOnClickListener。TakePhotoActivity的调用仅来自工具栏菜单。发布整个堆栈跟踪。然后检查您可以在哪里分配OnClickListener。我看不出您在哪里分配
setOnClickListener
我没有setOnClickListener。TakePhotoActivity的调用仅来自工具栏菜单。是的,我在第414行调用了OnClickListener。这是一个和平的源代码从一个旧的组件,我删除它。我删除了这行和所有的作品。谢谢你的帮助。是的,我已经给414线的OnClick听众打了电话。这是一个和平的源代码从一个旧的组件,我删除它。我删除了这行和所有的作品。谢谢你的帮助。