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

Respuesta
 
Herramientas
  #1  
Viejo 06/12/16, 11:08:52
Array

[xs_avatar]
Merche300 Merche300 no está en línea
Betatester oficial
 
Fecha de registro: dic 2008
Localización: Valencia
Mensajes: 625
Modelo de smartphone: NEXUS 5 - ONEPLUS 3
Tu operador: Pepephone
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
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,202
Tu operador: -

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.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
Gracias de parte de:
  #3  
Viejo 06/12/16, 11:58:48
Array

[xs_avatar]
Merche300 Merche300 no está en línea
Betatester oficial
 
Fecha de registro: dic 2008
Localización: Valencia
Mensajes: 625
Modelo de smartphone: NEXUS 5 - ONEPLUS 3
Tu operador: Pepephone
 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
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,202
Tu operador: -

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?
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
Gracias de parte de:
  #5  
Viejo 06/12/16, 12:59:29
Array

[xs_avatar]
Merche300 Merche300 no está en línea
Betatester oficial
 
Fecha de registro: dic 2008
Localización: Valencia
Mensajes: 625
Modelo de smartphone: NEXUS 5 - ONEPLUS 3
Tu operador: Pepephone
 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
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,202
Tu operador: -

Pues entonces querrás hacer esto, ¿no?

.load(escudo_local[position])
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
Gracias de parte de:
  #7  
Viejo 06/12/16, 13:16:43
Array

[xs_avatar]
Merche300 Merche300 no está en línea
Betatester oficial
 
Fecha de registro: dic 2008
Localización: Valencia
Mensajes: 625
Modelo de smartphone: NEXUS 5 - ONEPLUS 3
Tu operador: Pepephone
 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   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 21:35:29 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /