此问题通常是由于在导航时使用了null参数而引起的。解决方法是确保正确地初始化并传递参数。以下是使用Fragment进行导航时的示例代码:
首先,在activity_main.xml中添加以下代码:
接下来,在MainActivity.java中添加以下代码:
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); return true; }
@Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId();
if (id == R.id.action_home) {
navigateToFragment(HomeFragment.newInstance());
return true;
} else if (id == R.id.action_settings) {
navigateToFragment(SettingsFragment.newInstance());
return true;
}
return super.onOptionsItemSelected(item);
}
private void navigateToFragment(Fragment fragment) { FragmentManager fragmentManager = getSupportFragmentManager(); fragmentManager.beginTransaction() .replace(R.id.content_frame, fragment) .addToBackStack(null) .commit(); }
注意:R.id.content_frame是你的Activity布局中作为片段容器的FrameLayout的id。此代码将在单击菜单项时切换片段。通过使用正确的参数并初始化它们,你可以避免此异常。