Ver Mensaje Individual
  #1  
Viejo 20/05/15, 20:06:09
Array

[xs_avatar]
gonza28 gonza28 no está en línea
Desarrollador
 
Fecha de registro: feb 2012
Localización: INTERESA?
Mensajes: 4,191
Modelo de smartphone: Samsung Galaxy Note 4
Tu operador: Personal
Lanzar fragment.clas pasando parametros por intents

Hola.
Tengo un drawer en el cual voy a lanzar un solo fragment que se conecta a mi php.
Son como 5 0 6 opciones en el drawer que lanzará el mismo fragment pero con url y titulo distinto. La verdad estoy atascado. Necesitaria una mano de alguien con ganas de dar una mano. tengo el fragmento ..diria yo, casi preparado para recibir los parametros. pero no se como enviar los mismos a el.
Anoche estuve tratando de hacer un array string con los parametros titulo,url. con esto, al lanzar el fragment.class, se inyectan los daos. pero no me salio nada bien. Soy de madera para los arrays. Si en este punto alguien puede darme el empujón con un ejemplo,, se lo voy agradecer mucho. Voy a dejar el ejemplo hasta donde llegué y solo faltando los rllenados.
Pero si lguien me brinda una mano con los metodos put*() de la clase intent tambien seria bueno. En realidad necesito lograr esto por que voy a tener en otras pantalla con listas el mismo requerimiento. asi que necesito lograrlo para no estar creando muchos Fragments. La ide seria terminar lo que empecé por que seria mas facil. facil pero estoy en la lucha

FragmentHome.class

[PHP]public class FragmentHome extends Fragment {

ListView lista;
ArrayAdapter adaptador;
HttpURLConnection con;

public static FragmentHome newInstance(String URL){
FragmentHome mFragment = new FragmentHome();
Bundle mBundle = new Bundle();
mBundle.putString("URL", URL);
mFragment.setArguments(mBundle);
return mFragment;
}


@override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_blog, container, false);
lista = (ListView) rootView.findViewById(R.id.list);



try {
ConnectivityManager connMgr = (ConnectivityManager)getActivity()
.getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();

if (networkInfo != null && networkInfo.isConnected()) {
new JsonTask().
execute(
new URL("http://ejemplo/service.php"));
} else {
Toast.makeText(getActivity(), "Error de conección", Toast.LENGTH_SHORT).show();
}

} catch (MalformedURLException e) {
e.printStackTrace();
}



return rootView;
}[/PHP]

Lanzando el Fragment desde el drawer:

[PHP]ArrayList<DrawerItemData> items;
public NoDrawerHeader(ArrayList<DrawerItemData> items){
this.items = items;

}

@override
public void init(Bundle savedInstanceState) {

for (DrawerItemData item : items) {
Fragment fragment = FragmentHome.newInstance(item.URL);
this.addSection(newSection(item.titulo, fragment));
}
}
}[/PHP]

Items a Rellenar para enviar al FragmentHome

[PHP]public class DrawerItemData {

String titulo, URL;

public DrawerItemData(String titulo, String URL) {
this.titulo = titulo;
this.URL = URL;




}


}[/PHP]

Se que para algunos, les parecerá una pequeñez. Pero hasta el infimo detalle me puede ayudar, asi que por favor ayuda.

Muchas gracias.

EDITO.
La URL que está en el try y el titulo del FragmentHome es lo que necesito que se cambie en el momento de ejecución.
Así logro:
Que se lance siempre el mismo fragmento pero con el titulo y url seleccionada para que descargue los datos correspondientes.

Última edición por gonza28 Día 20/05/15 a las 21:12:00.
Responder Con Cita