我成功地在列表视图中显示了来自 Web 服务 JSON 的数据,但我想添加 Asyntask。我可以将代码 Asyntask 放在我的代码中。
这是我在列表视图中显示数据的代码
public class Jadwal_remix extends ListActivity {
String v_date;
JSONArray r_js = null;
ArrayList<HashMap<String, String>> myArray = new ArrayList<HashMap<String,String>>();
public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.main);
    
    
    String status ="";
    String date = "";
    String result = "";
    String url = "http://10.0.2.2/remix/view_list.php";
    JSONParser jParser = new JSONParser();
    JSONObject json = jParser.AmbilJson(url);
    try
    {
        r_js = json.getJSONArray("view_list");
                
        for (int i =0; i < r_js.length(); i++)
        {
            String my_array = "";
            JSONObject ar = r_js.getJSONObject(i);
            status = ar.getString("st");
            date = ar.getString("date");
            result = ar.getString("result");
                    
            if (status.trim().equals("er"))
            {
                my_array += "Sorry "+result;
                HashMap<String, String> map = new HashMap<String, String>();
                map.put("result", my_array);
                myArray.add(map);
            }
            else
            {
                my_array += "Date : "+date+" "+"Result : "+result;
                HashMap<String, String> map = new HashMap<String, String>();
                map.put("result", my_array);
                myArray.add(map);
            }
                    
        }
    }
    catch (JSONException e) 
    {
         e.printStackTrace();
    }
    adapter_listview();
        
}
public void adapter_listview() {
    
    ListAdapter adapter = new SimpleAdapter(this, jadwalRemix,R.layout.my_list,new String[] { "result"}, new int[] {R.id.txtResult});
    setListAdapter(adapter);
}
}
而这个 JSONParser
public class JSONParser {
static InputStream is = null;
static JSONObject jObj = null;
static String json = "";
// constructor
public JSONParser() {
}
public JSONObject AmbilJson(String url) {
    // Making HTTP request
    try {
        // defaultHttpClient
        DefaultHttpClient httpClient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost(url);
        HttpResponse httpResponse = httpClient.execute(httpPost);
        HttpEntity httpEntity = httpResponse.getEntity();
        is = httpEntity.getContent();           
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    
    try {
        BufferedReader reader = new BufferedReader(new InputStreamReader(
                is, "iso-8859-1"), 8);
        StringBuilder sb = new StringBuilder();
        String line = null;
        while ((line = reader.readLine()) != null) {
            sb.append(line + "\n");
        }
        is.close();
        json = sb.toString();
    } catch (Exception e) {
        Log.e("Buffer Error", "Error converting result " + e.toString());
    }
    // try parse the string to a JSON object
    try {
        jObj = new JSONObject(json);
    } catch (JSONException e) {
        Log.e("JSON Parser", "Error parsing data " + e.toString());
    }
    // return JSON String
    return jObj;
}
 }
我可以在哪里放置 Asyntask 的代码?
好的,我得到了示例代码,我的代码现在是这样的
public class Jadwal_remix extends ListActivity {
String v_date;
JSONArray r_js = null;
ArrayList<HashMap<String, String>> myArray = new ArrayList<HashMap<String,String>>();
public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.main);
private class myProses extends AsyncTask<Void, Void, Void> {
    ProgressDialog dialog;
    
    protected void onPreExecute() {
        dialog = ProgressDialog.show(Jadwal_remix.this, "", "Loading... Please wait", true);
        
    }
protected Void doInBackground(Void... params) {
    
    
    String status ="";
    String date = "";
    String result = "";
    String url = "http://10.0.2.2/remix/view_list.php";
    JSONParser jParser = new JSONParser();
    JSONObject json = jParser.AmbilJson(url);
    try
    {
        r_js = json.getJSONArray("view_list");
                
        for (int i =0; i < r_js.length(); i++)
        {
            String my_array = "";
            JSONObject ar = r_js.getJSONObject(i);
            status = ar.getString("st");
            date = ar.getString("date");
            result = ar.getString("result");
                    
            if (status.trim().equals("er"))
            {
                my_array += "Sorry "+result;
                HashMap<String, String> map = new HashMap<String, String>();
                map.put("result", my_array);
                myArray.add(map);
            }
            else
            {
                my_array += "Date : "+date+" "+"Result : "+result;
                HashMap<String, String> map = new HashMap<String, String>();
                map.put("result", my_array);
                myArray.add(map);
            }
                    
        }
    }
    catch (JSONException e) 
    {
         e.printStackTrace();
    }
    return null;
protected void onPostExecute(Void unused) {
        adapter_listview();
        dialog.dismiss();
    }
        
}
public void adapter_listview() {
    
    ListAdapter adapter = new SimpleAdapter(this, jadwalRemix,R.layout.my_list,new String[] { "result"}, new int[] {R.id.txtResult});
    setListAdapter(adapter);
}
}
服务器死机时我遇到问题,它仍在加载。我如何显示消息前:无法连接到服务器?