Фрагмент нельзя отбрасывать в android.app.Activity (частный случай)

String a = new String("foo");
String b = new String("foo");
System.out.println(a == b); // prints false
System.out.println(a.equals(b)); // prints true

Убедитесь, что вы понимаете, почему. Это потому, что сравнение == сравнивает только ссылки; equals() метод сопоставляет содержимое по символу.

Когда вы вызываете new для a и b, каждый получает новую ссылку, указывающую на "foo" в таблице строк. Ссылки разные, но контент один и тот же.

-3
задан Ньеньо Фэлис 13 July 2018 в 11:13
поделиться

2 ответа

Не нужно создавать экземпляр Class и typecast, просто сделайте это

  @SuppressWarnings("StatementWithEmptyBody")
        @Override
        public boolean onNavigationItemSelected(MenuItem item) {          
            Fragment fragment = null;    
            int id = item.getItemId();    
            switch (id) {
                case R.id.nav_camera:                    
                    fragment = new FirstFragment();
                    break;
                case R.id.nav_gallery:
                    fragment = SecondFragment();
                    break;
                case R.id.nav_slideshow:

                    break;
                case R.id.nav_manage:

                    break;
                case R.id.nav_share:

                    break;
            }                                
            FragmentManager fragmentManager = getSupportFragmentManager();
            Bundle bundle = new Bundle();
            bundle.putString("1",String.valueOf(getMapLastIntent().get("aries")));
            fragment.setArguments(bundle);
            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;
        }
    }
0
ответ дан Hemant Parmar 17 August 2018 в 13:05
поделиться
  • 1
    На мои фрагменты будет передаваться различная информация, включая отдельную статическую информацию. Я хотел бы использовать класс – Ньеньо Фэлис 13 July 2018 в 11:26
  • 2
    вы можете передать пакет или создать статический метод в своем классе фрагмента. – Hemant Parmar 13 July 2018 в 11:29
  • 3
    Как определяется форматирование макета в этом случае? И я имею в виду дизайн передаваемых данных – Ньеньо Фэлис 13 July 2018 в 11:37
  • 4
    у вас была глупая ошибка, когда вы добавляли значения в фрагмент через пакет после перехода фрагмента, добавляли значение до перехода фрагмента, выглядели обновленным кодом. – Hemant Parmar 13 July 2018 в 11:40

Пожалуйста, добавьте экземпляр в ваш класс фрагмента

 public static YourFragment newInstance() {
        return new YourFragment();
    }
0
ответ дан urvi joshi 17 August 2018 в 13:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: