Android - Pasar ArrayList de un fragmento a otro

 
Vista:
sin imagen de perfil
Val: 21
Ha disminuido 1 puesto en Android (en relación al último mes)
Gráfica de Android

Pasar ArrayList de un fragmento a otro

Publicado por Luis David (11 intervenciones) el 11/11/2018 19:23:25
Pues tengo una aplicación del tipo:

Un menu principal con dos botones, uno abre un formulario, y otro abre la lista de alumnos añadidos (ListView) desde el formulario. Todo esto se realiza en un solo fragment. Tengo creada la lista desde el formulario correctamente y he intentado mandar los datos al objeto alumo y he creado un metodo setAlumnos(ArrayList<Alumno> listaAlumnos) y su respectivo getAlumnos para intentar realizar el test. Y no consigo que desde el otro fragmento llamando al metodo del objeto me muestre los alumnos de la lista. He intentado realizar bundles e interfaz y por un error u otro no consigo sacar el código. No comparto código a menos que sea necesario pues sólo quiere un pequeñito ejemplo para explicarme que solución pudeo darle a este problema. Un saludo y gracias de antemano!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Pasar ArrayList de un fragmento a otro

Publicado por carlos (1 intervención) el 11/11/2018 19:52:15
Hay distintas formas. Aquí un ejemplo con bundle

Las puedes meter en una función que llame por ejemplo a otro fragmento

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
private void launchFragmentRadioPlayer(String urlvalida,String urltest,String nombre,Bundle b,String autoplay,String procede,String urltesttodos){
 
    DatabaseHandler db = new DatabaseHandler(getActivity());
    FragmentRadioPlayer fragmento = new FragmentRadioPlayer();
 
    b.putString("PAGINA", urlvalida);
    b.putString("ATITULO", db.getDatoNombre(nombre).getTitulo());
    b.putString("TITULO",nombre);
    b.putString("AUTOPLAY", autoplay);
    b.putString("PROCEDE",procede);
    b.putString("TODASURLS",urltesttodos);
 
    fragmento.setArguments(b);
    FragmentTransaction tr = getActivity().getSupportFragmentManager().beginTransaction();
    tr.replace(R.id.flContent, fragmento, "NAVEGADOR");
    tr.addToBackStack(null).commit();
 
}

La llamas con:
1
launchFragmentTVPlayer(urlvalida,urltest,nombre,b,"SI",urltesttodos);

En el fragmento que los recibe:

1
2
3
4
5
6
7
8
9
10
11
public static FragmentTVPlayer newInstance(String param1, String param2, String param3, String param4, String param5) {
    FragmentTVPlayer fragment = new FragmentTVPlayer();
    Bundle args = new Bundle();
    args.putString(ARG_PARAM1, param1);
    args.putString(ARG_PARAM2, param2);
    args.putString(ARG_PARAM3, param3);
    args.putString(ARG_PARAM4, param4);
    args.putString(ARG_PARAM5, param5);
    fragment.setArguments(args);
    return fragment;
}

y en onCreate

1
2
3
4
5
6
7
8
if (getArguments() != null) {
    mUrlvalidaFO = getArguments().getString(ARG_PARAM1);
    mTituloMay = getArguments().getString(ARG_PARAM2);
    mAutoplay = getArguments().getString(ARG_PARAM3);
    mUrlOriginalFO = getArguments().getString(ARG_PARAM4);
    mTodasUrls = getArguments().getString(ARG_PARAM5);
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar