|
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
|
||||
|
||||
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(); } } 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; } } 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(); } } } ¿Porque en la linea Código:
.load(listViewItem.get(position).getImage()) Gracias Última edición por Merche300 Día 18/12/16 a las 10:27:58. Razón: añadido MainActivity |
|
#2
|
||||
|
||||
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!
|
Gracias de parte de: | ||
#3
|
||||
|
||||
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. |
#4
|
||||
|
||||
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!
|
Gracias de parte de: | ||
#5
|
||||
|
||||
escudo_local[i] = ("http://ffcv.es/ncompeticiones/")+jo.getString(KEY_ESCUDO_LOCAL } |
#6
|
||||
|
||||
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!
|
Gracias de parte de: | ||
#7
|
||||
|
||||
|