1

大家好,我有一个带有片段的标签应用程序。第一个选项卡显示了一个 ListFragment,它使用 JSON/php 从网络服务器收集数据。

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

我正在使用异步任务

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

4

0 回答 0