我有以下源代码:
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();
}
}
如果我运行该应用程序,则会发生错误:
Unable to start activity ComponentInfo{com.example.test/com.example.test.TakePhotoActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
R.id.container 只是一个 FrameLayout。如果我仅在应用程序中运行 TakePhotoActivity,它就可以工作。
从 initToolBars 方法打开 TakePhotoActivity 的正确方法是什么?
最佳答案
您是否在 Camera2BasicFragment.java 第 414 行中调用 (item).setOnClickListener(...) ?看起来(项目)为空。
关于java - 从另一个 Activity 中正确使用 fragment 管理器打开 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38126280/