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()
Это гораздо раньше в жизненном цикле фрагмента.