Пустые аргументы в связке фрагмента - PullRequest
0 голосов
/ 29 октября 2019

Я создал Bundle и поместил в него значение String. Затем я установил его в Fragment. Однако когда я пытаюсь прочитать это значение через getArguments();, я получаю null

Bundle bundle = new Bundle();
bundle.putString("flag", flagAbsentstr );
ExitFragment fragInfo = new ExitFragment();
fragInfo.setArguments(bundle);


private  void getArg(){
    Bundle args =this.getArguments();
    flagAbsentStr=args.getString("flag");
    flagAbsent=Integer.parseInt(flagAbsentStr);
}

@Nullable
@Override
public View onCreateView( LayoutInflater inflater,  ViewGroup container,Bundle savedInstanceState) {
    getArg();
    return inflater.inflate(R.layout.fragment_exit,container,false);
}

Ответы [ 2 ]

0 голосов
/ 29 октября 2019

Убедитесь, что вы кладете свой пакет до совершения транзакции. Например, проверьте ниже рабочую навигацию к другому Fragment с Bundle.

final Bundle bundle=new Bundle();
bundle.putString("name", buildingName);

final FragmentTransaction ft = getSupportFragmentManager()
          .beginTransaction();

final Fragment fragment = new RoomListFragment();
fragment.setArguments(bundle);

ft.add(R.id.listview_fragment_container, fragment);
ft.commit();

ОБНОВЛЕНИЕ

Для взаимодействия с уже созданными фрагментами (например, TabsВы упомянули в комментариях), вы должны проверить официальную документацию для ex. Просто один из примеров отправки данных через Fragment с.

0 голосов
/ 29 октября 2019

Вы, похоже, устанавливаете аргументы для локального члена с именем fragInfo , но вы пытаетесь получить аргументы для другого, а именно для this фрагмента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...