如果没有Internet,如何停止在ListFragment中加载数据?

时间:2013-09-30 04:54:35

标签: android-asynctask loading android-listfragment

大家好我有一个带片段的Tab应用程序。 第一个选项卡显示ListFragment,使用JSON / php从Web服务器重新选择数据。

我的问题是,当智能手机中没有互联网时,应用程序会继续加载或尝试搜索数据。那么我该如何停止加载呢?如何在有互联网时再次开始加载?我猜是在onPostExecute()方法,但我不知道如何获得“Internet状态”。

我正在使用AsyncTask

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);            
        }

}

如果你们可以指导我,我会很高兴:)enter code here

0 个答案:

没有答案