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听众打了电话。这是一个和平的源代码从一个旧的组件,我删除它。我删除了这行和所有的作品。谢谢你的帮助。