Добрый день! Помогите решить проблему.
Ошибка:
java.lang.NullPointerException: Attempt to invoke virtual method 'void com.gnegno.horoscope.FragmentFirst.sendData(java.lang.String)' on a null object reference
at com.gnegno.horoscope.startActivity.onNavigationItemSelected(startActivity.java:118) (fragment1.sendData(S1))
Понимаю, что куда то надо переставить строки, но не пойму куда.
Для тех кто подумает, что String S = (String) getMapLastIntent().get("taurus") - null, это не так. В другом месте этой же активности всё норм. И проверено при String S = (String) ="taurus"; та же ошибка.
Далее при case R.id.nav_gallery: видимо та же проблема, метод передачи другой ,через интенты, без ошибки работает, но просто не передает ничего.
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
// Создадим новый фрагмент
Fragment fragment = null;
Class fragmentClass = null;
// Handle navigation view item clicks here.
int id = item.getItemId();
switch (id) {
case R.id.nav_camera:
FragmentFirst fragment1 = (FragmentFirst)getSupportFragmentManager()
.findFragmentById(R.id.container);
fragmentClass = FragmentFirst.class;
String S1 = (String) getMapLastIntent().get("taurus");
fragment1.sendData(S1);
break;
case R.id.nav_gallery:
/*String S = (String) getMapLastIntent().get("taurus");*/
String S = "taurus";
Intent intent = new Intent();
intent.putExtra("taurus", S);
getApplicationContext().sendBroadcast(intent);
fragmentClass = FragmentSecond.class;
break;
case R.id.nav_slideshow:
break;
case R.id.nav_manage:
break;
case R.id.nav_share:
break;
}
try {
assert fragmentClass != null;
fragment = (Fragment) fragmentClass.newInstance();
} catch (Exception e) {
e.printStackTrace();
}
// Вставляем фрагмент, заменяя текущий фрагмент
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction().replace(R.id.container, fragment).commit();
// Выделяем выбранный пункт меню в шторке
item.setChecked(true);
// Выводим выбранный пункт в заголовке
setTitle(item.getTitle());
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}