Foros del Web » Programando para Internet » Android »

¿Cómo hago para no llenar ListFragment cuando no hay conexión?

Estas en el tema de ¿Cómo hago para no llenar ListFragment cuando no hay conexión? en el foro de Android en Foros del Web. Hola a todos, Tengo una aplicación con pestañas, en la cual una de ellas tiene un ListFragment que se llena con datos JSON de una ...
  #1 (permalink)  
Antiguo 02/10/2013, 21:59
 
Fecha de Ingreso: noviembre-2009
Mensajes: 9
Antigüedad: 15 años
Puntos: 1
Exclamación ¿Cómo hago para no llenar ListFragment cuando no hay conexión?

Hola a todos,

Tengo una aplicación con pestañas, en la cual una de ellas tiene un ListFragment que se llena con datos JSON de una base de datos de un servidor.

Mi problema es que al no tener conexión de internet el celular, la aplicación sigue intentando recolectar datos y no se detiene. Estoy utilizando AsyncTask para el control de datos.

Tengo entendido que un "hilo" podría ayudar, pero no estoy seguro si en Android serviria. Qué debo utilizar para controlar la recoleccion de datos?

Este es mi código de la pestaña del ListFragment.

Código:
public class Tab1Fragment extends ListFragment {

	private static String url="http://10.0.2.2/prueba/lista.php";
	private static final String TAG="nombre";
	private Context context;
	ArrayList<HashMap<String,String>> jsonlist=new ArrayList<HashMap<String,String>>();
	 
	    @Override
	    public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
	        
	    	new GetJSONActivity(Tab1Fragment.this).execute();
	    	
	    	
	    
	 
	        return super.onCreateView(inflater, container, savedInstanceState);
	    }
	    private class GetJSONActivity extends AsyncTask<String, Void, String>{
	    	
	    	private ProgressDialog progressDialog;
	    	
	    	protected void onPreExecute(){
	    		
	    		progressDialog=ProgressDialog.show(getActivity(), "",
	    				"Loading. Please Wait..",true);
	    	
	    	}
	    	public GetJSONActivity(ListFragment activity){
	    		
	    		context=activity.getActivity();
	    	}
			@Override
			protected String doInBackground(String... arg0) {
				// TODO Auto-generated method stub
				
				JSONParser jParser=new JSONParser();
				JSONArray json=jParser.getJSONFromURL(url);
				
				for(int i=0;i<json.length(); i++){
					
					try{
						
						JSONObject c=json.getJSONObject(i);
						String vnombre=c.getString(TAG);
						HashMap<String, String> map=new HashMap<String, String>();
						map.put(TAG, vnombre);
						jsonlist.add(map);
	
						}catch(JSONException e){
							e.printStackTrace();
							return "Error creando variables";
					}
				}
				return "Exito";
			}
			
			protected void onPostExecute(String success){
				
				progressDialog.dismiss();
				ListAdapter adapter=new SimpleAdapter(context, 
						jsonlist,
						R.layout.item, new String[]{ TAG }, 
						new int[]{R.id.nombreitem});
				
				setListAdapter(adapter);			
			}
}
}

Etiquetas: internet, json
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:31.