entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Buenas, al hacer esto mismo en mi CustomListViewAdapter en un Fragment la aplicación se cierra cuando cargo las imagenes de la BD.
En mi Fragment tengo lo siguiente:

@SuppressLint("NewApi")
public class FragmentCalendario extends Fragment {

    View rootView;
    ListView listCalendario;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        rootView = inflater.inflate(R.layout.activity_calendario, container, false);
        listCalendario = (ListView) rootView.findViewById(R.id.listadoViewPartidos);
        StrictMode.enableDefaults();
        new LoadBackgroudData().execute();
        return rootView;
    }

    class LoadBackgroudData extends AsyncTask<String, String, String> {
        List<ListViewItem> items = new ArrayList<FragmentCalendario.ListViewItem>();
        String resultadoMatch = "";
        String resultadoMatch2 = "";
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
        }
        @Override
        protected String doInBackground(String... params) {
            // Perform load data method here
            // It may be a network operation(loading data from server)
            // or simply loading data from local database
            String login_url = "http://archivo.php";
            try {
                URL url = new URL(login_url);
                HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();
                httpURLConnection.setRequestMethod("POST");
                httpURLConnection.setDoOutput(true);
                httpURLConnection.setDoInput(true);
                OutputStream outputStream = httpURLConnection.getOutputStream();
                /*
                BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream,"UTF-8"));
                String data = URLEncoder.encode("login_name","UTF-8")+"="+URLEncoder.encode(login_name,"UTF-8")+"&"+
                        URLEncoder.encode("login_pass","UTF-8")+"="+URLEncoder.encode(login_pass,"UTF-8");
                bufferedWriter.write(data);
                bufferedWriter.flush();
                bufferedWriter.close();
                */
                outputStream.close();
                InputStream inputStream = httpURLConnection.getInputStream();
                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream,"iso-8859-1"));
                String response = "";
                String line = "";
                while ((line = bufferedReader.readLine())!=null)
                {
                    response+= line;
                }
                bufferedReader.close();
                inputStream.close();
                httpURLConnection.disconnect();
                return response;
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }

        @SuppressLint("NewApi")
        @Override
        protected void onPostExecute(String result) {
            // after execution go to second activity
            try {
                JSONArray partidos = new JSONArray(result);
                String imagenLocal = "";
                String imagenVisitante = "";
                String imagenLocal2 = "";
                String imagenVisitante2 = "";
                String jornada = "";
                String jornada2 = "";
                String horario = "";
                int contador = 0;
                for (int i = 0; i < partidos.length(); i++) {
                    final JSONObject partido = partidos.getJSONObject(i);
                    final int contadorFinal = contador;
                    String equipoLocal = partido.getString("local");
                    String estado = partido.getString("estado");
                    if (equipoLocal.equals("Equipo") && !estado.equals("descanso")) {
                        items.add(new ListViewItem() {
                            {
                                ThumbnailResource =  partido.getString("img_local");
                                Title = partido.getString("local") + " "
                                        + partido.getString("resultado") + " "
                                        + partido.getString("visitante");
                                ThumbnailResource2 =  partido.getString("img_visitante");
                            }
                        });
                        contador = contador + 1;
                    } else if (equipoLocal.equals("Equipo")
                            && estado.equals("descanso")) {
                        items.add(new ListViewItem() {
                            {
                                Title = partido.getString("resultado");
                            }
                        });
                    } else {
                        items.add(new ListViewItem() {
                            {
                                ThumbnailResource =  partido.getString("img_visitante");
                                Title = partido.getString("local") + " "
                                        + partido.getString("resultado") + " "
                                        + partido.getString("visitante");
                                ThumbnailResource2 =  partido.getString("img_local");
                            }
                        });
                        contador = contador + 1;
                    }
                }
                CustomListViewAdapterCalendario adapter = new CustomListViewAdapterCalendario(
                        getActivity(), items);
                listCalendario.setAdapter(adapter);
            } catch (JSONException e) {

            }
        }

    }

    class ListViewItem {
        public String ThumbnailResource;
        public String Title;
        public String ThumbnailResource2;
    }
}

He probado a no mostrar las imagenes y el texto si me aparece correctamente, pero cuando intento cargar las imagenes la aplicación se cierra automáticamente.

Este Fragment lo muestro al hacer click en un DrawerLayout.

Como puedo hacer para que no se cierre la aplicación, muchas gracias!

1 Respuesta

1voto

danielreales7 Puntos5380

El error venía de la clase CustomListViewAdapterCalendario al obtener las imágenes en el try y catch, tenía un log.e("errror", e.getMessage()).
Fue comentar esta línea y funcionó correctamente.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta