estoy empezando una actividad a través de los medios habituales:Fragmentos del paquete onCreateView(). ¿De dónde viene?
Intent startIntent = new Intent(this, DualPaneActivity.class);
startIntent.putExtras(((SearchPageFragment) currentFragment).getPageState());
startActivity(startIntent);
Cuando las cargas de esta actividad, se coloca un fragmento en un marco de este modo:
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
Fragment currentFragment = fragment;
currentFragment.setArguments(getIntent().getExtras());
transaction.replace(R.id.singlePane, currentFragment);
transaction.commit();
Parece simple, ¿verdad?
Sin embargo, puede interior de onCreateView() el acceso método de tres haces separados (cuatro, si se incluye la incluida en el fragmento onCreate(Bundle savedInstanceState)
):
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
// Fill state information
Bundle bundle;
if(savedInstanceState != null) bundle = savedInstanceState; // 1
else if(getArguments() != null) bundle = getArguments(); // 2
else bundle = getActivity().getIntent().getExtras(); // 3
setPageState(bundle);
}
En el ejemplo anterior, he trabajado a cabo de prueba y error que el paquete que quiero es el segundo, el que se recuperó del .
Según tengo entendido, el tercero de getActivity().getIntent().getExtras();
llama al paquete desde el intento utilizado para comenzar a contener actividad. También sé por experimentación que savedInstanceState
parece ser siempre nulo. ¿Pero de dónde viene y por qué es nulo?
El documentation dice esto:
savedInstanceState Si no nulo, este fragmento está siendo reconstruido desde un estado guardado anterior, como se da aquí.
Eso no me ayuda - Me molesta más que dejar de seguir adelante. ¿Alguien puede ayudarme con esta molestia?