|
Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
|
Herramientas |
#1
|
||||
|
||||
Fragment Json gridview
Buenas, vuelvo a intentar ver si alguien puede guiarme.. el tema es asi,no se si alguien ha usado alguna vez una app para conocer gente y demás..
el tema es tener una activity principal donde se interactua mediante fragments. depende el boton q aprietes carga el fragment: Inicio-Mi perfil-Buscar son a ejemplos. mi problema es el siguiente, al crear el fragment, e intentar obtener el array de json para llenar un gridview o cualquier otro fragment, me tira que necesito declarar el fragment como final y no puedo pasar de ahi. esta bien este metodo? sugieren algun otro? la app solo es la base, se rellena todo desde la db. gracias y saludos. |
|
#2
|
||||
|
||||
No pones código, así que voy a suponer lo que te está pasando:
Fragment fragment = new Fragment(); ..... x.setAdapter(new Adapter() { .... fragment..... .... }); Si tu caso es parecido a ese, lo que te ocurre es que estás usando una variable local en una clase dentro de otra clase que usas como cliente. Las soluciones son 2: La primera es efectivamente declararla como final: final Fragment fragment = new Fragment(); No hay problema si no vas a volver a cambiar su referencia, pero si vas a tener algo como lo siguiente: final Fragment fragment = new Fragment(); ...... fragment = otroFragment; No te vale. La segunda solución es declarar la variable como global, es decir, fuera del ámbito de cualquier método, en ese caso también te funcionará y si podrás usar casos como el código anterior. |
#3
|
||||
|
||||
este es el codigo del fragment, no se donde dices que hay que declarar la variable como final, en el fragment o en el activity donde se carga el fragment? y si esta activity carga varios fragment dependiendo como se avanze? además pones:
Final Fragment fragment = new fragment(); . si pudieras explicarme que significa se agradece [Final = tipo, Fragment indica que es un fragmento, el fragment minusculo indica que variable es dentro de los fragments? o es el nombre del fragment que estas usando (a ejemplo) , new indica que es un nuevo fragment,y xq queda vacio dentro de los parentesis? ] voy avanzando en conocimientos a medida que sigo con la app, q empeze de cero a programar.
(Click para mostrar/ocultar)
modifique la url para q no se vea, y esta incompleto,por que no pude hacer el request por ese error. saludos y gracias por la colaboración. |
#4
|
||||
|
||||
Sinceramente, si no sabes lo que significa esto:
final Fragment fragment = new Fragment(); El único consejo que te puedo dar, y no te lo tomes a mal, es que vayas, aprendas Java, y cuando sepas Java, vuelves y verás como sabrás resolver tu problema al instante. Tu problema es un concepto muy básico de Java, de hecho ya lo estás usando aunque no te des cuenta, imagino porque habrás hecho algún copy&paste de algún sitio: Código:
final JSONObject jsonObject = new JSONObject(Request.Method.POST, URL, new Response.Listener<String>() { @override public void onResponse(String response) { try { JSONArray = new JSONArray(response); if (JSONArray.class.get(0).equals("msj } }else { Toast.makeText(this.getContext(), jsonObject.getString("error"), Toast.LENGTH_SHORT).show(); } } catch (JSONException e) { e.printStackTrace(); } } } Toast.makeText(this.getContext(), jsonObject.getString("error"), Toast.LENGTH_SHORT).show(); Si jsonObject no fuese final obtendrías el mismo error que te está ocurriendo en otra parte del código, ya que todos los objetos declarados fuera de un contexto deben ser finales si quieres usarlos dentro de ese contexto. Esto no se aplica si la variable es global, es decir, definida fuera de cualquier método directamente en la clase. En ese caso no tienen porque ser finales. |
#5
|
||||
|
||||
te agradezco el tiempo,la respuesta la verdad no me sirvio.
como dices es un concepto basico,pero pense aqui podrian ayudarme a aprender. En tal caso tendre que estudiar java y abandonar la consulta a otras personas. Aunque tu respuesta le saca el sentido al foro,pero bueno. saludos y gracias. P.D: Si alguno quiere explicarle a alguien que no tiene terminado el secundario como declarar como final la activity para usarla dentro del request se agradece. |
Estás aquí | ||||||
|