@Gnegno

Как решить On a null object reference?

Добрый день! Помогите решить проблему.
Ошибка:
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;
    }
  • Вопрос задан
  • 1484 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы