studio finalizar completamente cerrar aplicaciones aplicacion android android-layout android-intent nfc

finalizar - cerrar completamente aplicaciones android studio



Pasar intento a mi fragmento (2)

Descubrí que Intent es un objeto parcelable, puedo usar el método bundle.putParcelable () para pasar la instancia de intención al siguiente fragmento.

Implementé el despacho de primer plano de NFC en mi actividad . El código funciona bien, cuando la etiqueta NFC se acerca a mi teléfono, se onNewIntent(Intent intent) .

Ahora, me gustaría mostrar un Fragmento (MyFragment.java) cuando se onNewIntent(Intent intent) . Hay un resolveIntent(Intent intent) definido en la clase Fragment .

Aquí hay un código de mi actividad :

public class MainActivity extends Activity{ … @Override public void onNewIntent(Intent intent) { super.onNewIntent(intent); FragmentManager fragmentManager = activity.getFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); //How to pass the ''intent'' to MyFragment? MyFragment fragment = new MyFragment(); fragmentTransaction.replace(R.id.placeholder, fragment, fragmentName); fragmentTransaction.addToBackStack(null); fragmentTransaction.commit(); } }

Código de MyFragment.java

public class MyFragment extends Fragment{ … @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ ... } @Override public void onResume(){ super.onResume(); //How to get ''intent'' here resolveIntent(intent); } private void resolveIntent(Intent intent){ ... } }

Mi pregunta es ¿cómo podría pasar el intent de onNewIntent(Intent intent) a MyFragment para que pueda manejar la intención en MyFragment en onResume() ?


Puede almacenar la intención en un campo de su actividad. Agregue un método como getLastIntent () y llámelo en su fragmento con getActivity (). GetLastIntent ().

O extrae información de la intención y crea un paquete que usarás con fragment.setArguments () y en el método onStart () de tu fragmento usa getArguments ()