android args.getString дает ноль вне onStart

Я передаю строку между двумя фрагментами. Это работает, но по причине я не могу получить строку за пределами OnStart...

public class EventSelectFriendFragment extends Fragment {
final static String DATA_RECEIVE = "data_receive";
String passedPushId;
Button create;

@Override
public void onStart() {
    super.onStart();
    Bundle args = getArguments();
    if (args != null) {
        passedPushId = args.getString(DATA_RECEIVE);
        Log.d("passed id",args.getString(DATA_RECEIVE) );
    }
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View rootView =  inflater.inflate(R.layout.fragment_event_select_friend, container, false);




    create= (Button) rootView.findViewById(R.id.btnCreate);

    btnMaakEvent.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            for(int i = selectedFriends.size()-1 ; i >= 0; i--){

                Log.d("array: ", i + selectedFriends.get(i).getFirstName());
                Log.d("passedPushId:  ", passedPushId);

            }            
       }
    });

    return rootView;
}

}

В onStart передал PushId дает мне строку из другого фрагмента. Но когда я хочу использовать его в цикле for, значение sentPushId равно нулю...

1 ответ

onCreateView() называется раньше, чем onStart(), Вообще говоря, вы должны инициализировать переменные экземпляра из аргументов Bundle Внутри onCreate()не onStart()Это гораздо раньше в жизненном цикле фрагмента.

Другие вопросы по тегам