Навигационный элемент выбран, передать дополнительную информацию - PullRequest
0 голосов
/ 18 марта 2019

У меня проблемы с попыткой выяснить, как передать дополнительную информацию во фрагмент.

Я хочу передать как строку, так и int.

Мне удалось заставить это работать с намерениями на другой странице и кнопками, используя onClick и intent.putExtra перед частью getSupportFrag.Тем не менее, я попытался сделать такой же подход для навигационного ящика без удачи.На самом деле он по какой-то причине открывает несвязанную страницу.

Есть ли способ заставить это работать с сохранением частей testStr и testInt в активности фрагмента?

Фрагмент, получающий дополнительные данные, использует

testStr = activity.getIntent().getStringExtra("test str");
testInt = activity.getIntent().getIntExtra("test int", 0);

Основная деятельность

@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
    switch (item.getItemId()) {

    case R.id.nav_test1:
        //Used in a fragment activity on buttons and works with OnClick
        Intent intent = this.getIntent();
        intent.putExtra("test str", "test value");
        intent.putExtra("test int", 0);
        getSupportFragmentManager().beginTransaction().
        replace(R.id.fragment_container,
                    new LevelX()).addToBackStack(null).commit();
        //end

  }
  drawer.closeDrawer(GravityCompat.START);
  return true;
}

1 Ответ

0 голосов
/ 18 марта 2019

Вы должны использовать Bundle с Fragment.setArguments.Добавьте необходимые параметры в объект Bundle и добавьте его во фрагмент.Внутри фрагмента вызовите getArguments (), чтобы получить Bundle.Пожалуйста, посмотрите точный пример использования здесь: Как использовать методы setArguments () и getArguments () во фрагментах?

...