Home Menu

Menu



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  
Viejo 06/12/16, 11:08:52
Avatar de Merche300
Merche300 Merche300 no está en línea
Betatester oficial
Mensajes: 625
 
Fecha de registro: dic 2008
Localización: Valencia
Mensajes: 625
Modelo de smartphone: NEXUS 5 - ONEPLUS 3
Versión de ROM: Cata
Versión de Radio: Radio Macuto
Tu operador: Pepephone
Mencionado: 0 comentarios
Tagged: 0 hilos
Glide

Veran, tengo un problema tanto con Glide, e de decir que tambien me pasa con Picasso.

Código:
public class MainActivity extends AppCompatActivity {

    public static final String JSON_URL = "http://juveniles.esy.es/Temp_Actual/calendario.php";

    private ListView listView;

     @override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        sendRequest();

        listView = (ListView) findViewById(R.id.listView);
    }

    private void sendRequest(){

        StringRequest stringRequest = new StringRequest(JSON_URL,
                new Response.Listener<String>() {
                     @override
                    public void onResponse(String response) {
                        showJSON(response);
                    }
                },
                new Response.ErrorListener() {
                     @override
                    public void onErrorResponse(VolleyError error) {
                        Toast.makeText(MainActivity.this,error.getMessage(),Toast.LENGTH_LONG).show();
                    }
                });

        RequestQueue requestQueue = Volley.newRequestQueue(this);
        requestQueue.add(stringRequest);
    }

    private void showJSON(String json){
        ParseJSON pj = new ParseJSON(json);
        pj.parseJSON();
        CustomList cl = new CustomList(this, ParseJSON.ids,ParseJSON.names,ParseJSON.emails,ParseJSON.escudo_local);
        listView.setAdapter(cl);
    }


    public void onClick(View v) {
        sendRequest();
    }
}
CustomList.java
Código:
public class CustomList extends ArrayAdapter<String> {
    private String[] ids;
    private String[] names;
    private String[] emails;
    private String[] escudo_local;
    private Activity context;

    public CustomList(Activity context, String[] ids, String[] names, String[] emails,
                      String[] escudo_local) {
        super(context, R.layout.list_view_layout, ids);

        this.context = context;
        this.ids = ids;
        this.names = names;
        this.emails = emails;
        this.escudo_local = escudo_local;
    }

      @override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = context.getLayoutInflater();
        View listViewItem = inflater.inflate(R.layout.list_view_layout, null, true);
        TextView textViewId = (TextView) listViewItem.findViewById(R.id.textViewId);
        TextView textViewName = (TextView) listViewItem.findViewById(R.id.textViewName);
        TextView textViewEmail = (TextView) listViewItem.findViewById(R.id.textViewEmail);
        ImageView imageViewImage = (ImageView) listViewItem.findViewById(R.id.imageViewImage);

        textViewId.setText(ids[position]);
        textViewName.setText(names[position]);
        textViewEmail.setText(emails[position]);

        Glide.with(context)

                .load(listViewItem.get(position).getImage())
                .diskCacheStrategy(DiskCacheStrategy.ALL)
                .transform(new GlideCircleTransform(context))
                .placeholder(R.mipmap.ic_launcher)
                .error(android.R.drawable.ic_dialog_alert)
                .into(imageViewImage);

        return listViewItem;
    }

}
ParseJSON.java

Código:
public class ParseJSON {
    public static String[] ids;
    public static String[] names;
    public static String[] emails;
    public static String[] escudo_local;

    public static final String JSON_ARRAY = "jornadas";
    public static final String KEY_ID = "nomLocal";
    public static final String KEY_NAME = "jornada";
    public static final String KEY_EMAIL = "nomVisitante";
    public static final String KEY_ESCUDO_LOCAL = "escudoLocal";

    private JSONArray calendario = null;

    private String json;

    public ParseJSON(String json){
        this.json = json;
    }

    protected void parseJSON(){
        JSONObject jsonObject=null;
        try {
            jsonObject = new JSONObject(json);
            calendario = jsonObject.getJSONArray(JSON_ARRAY);

            ids = new String[calendario.length()];
            names = new String[calendario.length()];
            emails = new String[calendario.length()];
            escudo_local = new String[calendario.length()];

            for(int i=0;i<calendario.length();i++){
                JSONObject jo = calendario.getJSONObject(i);
                ids[i] = jo.getString(KEY_ID);
                names[i] = jo.getString(KEY_NAME);
                emails[i] = jo.getString(KEY_EMAIL);
                escudo_local[i] = ("http://ffcv.es/ncompeticiones/")+jo.getString(KEY_ESCUDO_LOCAL);


            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
}
Y la pregunta es:
¿Porque en la linea

Código:
 .load(listViewItem.get(position).getImage())
la palabra get me sale en rojo y como solucionarlo ?

Gracias

Última edición por Merche300 Día 18/12/16 a las 10:27:58 Razón: añadido MainActivity
Responder Con Cita


  #2  
Viejo 06/12/16, 11:45:06
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
El problema no es de Glide ni de Picasso, es que listViewItem lo has declarado de tipo View y View no tiene ningún método get con parámetro int. Supongo que incluso el propio Android Studio te lo dirá al poner el cursor encima.

De todas formas no he entendido muy bien de dónde quieres sacar la imagen a cargar con load. Si ya la tuvieras en la vista no tendrías que cargarla. Y si la tienes en otro sitio supongo que lo que querrías hacer es un images[position], pero no tienes un array de imágenes ni nada parecido en el adapter.
Responder Con Cita
Gracias de parte de:
  #3  
Viejo 06/12/16, 11:58:48
Avatar de Merche300
Merche300 Merche300 no está en línea
Betatester oficial
Mensajes: 625
 
Fecha de registro: dic 2008
Localización: Valencia
Mensajes: 625
Modelo de smartphone: NEXUS 5 - ONEPLUS 3
Versión de ROM: Cata
Versión de Radio: Radio Macuto
Tu operador: Pepephone
Mencionado: 0 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por mocelet Ver Mensaje
El problema no es de Glide ni de Picasso, es que listViewItem lo has declarado de tipo View y View no tiene ningún método get con parámetro int. Supongo que incluso el propio Android Studio te lo dirá al poner el cursor encima.

De todas formas no he entendido muy bien de dónde quieres sacar la imagen a cargar con load. Si ya la tuvieras en la vista no tendrías que cargarla. Y si la tienes en otro sitio supongo que lo que querrías hacer es un images[position], pero no tienes un array de imágenes ni nada parecido en el adapter.
He editado el post 1 agregando el MainActivity, la imagen viene con el Json.
Responder Con Cita
  #4  
Viejo 06/12/16, 12:05:08
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
Si viene en el JSON tendrás que leerla del JSON, no de la View. Y guardarla en algún array como haces con todos los demás atributos, o la imagen es el escudo?
Responder Con Cita
Gracias de parte de:
  #5  
Viejo 06/12/16, 12:59:29
Avatar de Merche300
Merche300 Merche300 no está en línea
Betatester oficial
Mensajes: 625
 
Fecha de registro: dic 2008
Localización: Valencia
Mensajes: 625
Modelo de smartphone: NEXUS 5 - ONEPLUS 3
Versión de ROM: Cata
Versión de Radio: Radio Macuto
Tu operador: Pepephone
Mencionado: 0 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por mocelet Ver Mensaje
Si viene en el JSON tendrás que leerla del JSON, no de la View. Y guardarla en algún array como haces con todos los demás atributos, o la imagen es el escudo?
La imagen es el escudo, en el json viene untrozo de url y lo que falta es lo que añado

escudo_local[i] = ("http://ffcv.es/ncompeticiones/")+jo.getString(KEY_ESCUDO_LOCAL }
Responder Con Cita
  #6  
Viejo 06/12/16, 13:08:39
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
Pues entonces querrás hacer esto, ¿no?

.load(escudo_local[position])
Responder Con Cita
Gracias de parte de:
  #7  
Viejo 06/12/16, 13:16:43
Avatar de Merche300
Merche300 Merche300 no está en línea
Betatester oficial
Mensajes: 625
 
Fecha de registro: dic 2008
Localización: Valencia
Mensajes: 625
Modelo de smartphone: NEXUS 5 - ONEPLUS 3
Versión de ROM: Cata
Versión de Radio: Radio Macuto
Tu operador: Pepephone
Mencionado: 0 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por mocelet Ver Mensaje
Pues entonces querrás hacer esto, ¿no?

.load(escudo_local[position])
Vaya tela con el getImage(), si mocelet, desde ayer que estoy leyendo tutoriales y ya no sabia que hacer. Muchas gracias.
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 23:15:51 (GMT +1)

Cookies
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007