gonza28
20/05/15, 20:06:09
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:cry:
FragmentHome.class
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;
}
Lanzando el Fragment desde el drawer:
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));
}
}
}
Items a Rellenar para enviar al FragmentHome
public class DrawerItemData {
String titulo, URL;
public DrawerItemData(String titulo, String URL) {
this.titulo = titulo;
this.URL = URL;
}
}
Se que para algunos, les parecerá una pequeñez. Pero hasta el infimo detalle me puede ayudar, asi que por favor ayuda.
Muchas gracias.:ok:
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.
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:cry:
FragmentHome.class
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;
}
Lanzando el Fragment desde el drawer:
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));
}
}
}
Items a Rellenar para enviar al FragmentHome
public class DrawerItemData {
String titulo, URL;
public DrawerItemData(String titulo, String URL) {
this.titulo = titulo;
this.URL = URL;
}
}
Se que para algunos, les parecerá una pequeñez. Pero hasta el infimo detalle me puede ayudar, asi que por favor ayuda.
Muchas gracias.:ok:
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.