安卓异步处理json解析例子
首先有个工具类: Myhttp.class
packagecom.example.json;importjava.io.IOException;importorg.apache.http.HttpResponse;importorg.apache.http.HttpStatus;importorg.apache.http.client.ClientProtocolException;importorg.apache.http.client.HttpClient;importorg.apache.http.client.methods.HttpGet;importorg.apache.http.impl.client.DefaultHttpClient;importorg.apache.http.util.EntityUtils;publicclassMyhttp{publicStringhttpGet(Stringurl){Stringresponse=null;HttpClienthttpClient=newDefaultHttpClient();//创建HttpGet对象HttpGethttpGet=newHttpGet(url);HttpResponsehttpResponse;try{//使用execute方法发送HttpGet请求,并返回httRresponse对象httpResponse=httpClient.execute(httpGet);intstatusCode=httpResponse.getStatusLine().getStatusCode();if(statusCode==HttpStatus.SC_OK){//获得返回结果response=EntityUtils.toString(httpResponse.getEntity());}}catch(ClientProtocolExceptione){e.printStackTrace();}catch(IOExceptione){e.printStackTrace();}returnresponse;}}
然后主类
packagecom.example.json;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importorg.json.JSONArray;importorg.json.JSONException;importorg.json.JSONObject;importandroid.app.Activity;importandroid.os.AsyncTask;importandroid.os.Bundle;importandroid.view.View;importandroid.widget.AdapterView;importandroid.widget.AdapterView.OnItemClickListener;importandroid.widget.ListView;importandroid.widget.SimpleAdapter;importandroid.widget.Toast;publicclassMainActivityextendsActivity{ListViewlist;ArrayList<HashMap<String,String>>myArrayList=newArrayList<HashMap<String,String>>();@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);list=(ListView)findViewById(R.id.list);newgetJsonTask().execute(null,null,null);}classgetJsonTaskextendsAsyncTask<Object,Object,Object>{@OverrideprotectedObjectdoInBackground(Object...params){Stringurl="http://www.baidu.com";MyhttpmyHttp=newMyhttp();StringretStr=myHttp.httpGet(url);try{JSONObjectjson1=newJSONObject(retStr);Stringj1=json1.getString("kinds");JSONArrayj2=newJSONArray(j1);for(inti=0;i<j2.length();i++){JSONObjectjsonObject=j2.getJSONObject(i);Stringj3=jsonObject.getString("breeds");JSONArrayj4=newJSONArray(j3);for(intj=0;j<j4.length();j++){JSONObjectjsonObject1=j4.getJSONObject(j);Stringj6=jsonObject1.getString("id");Stringj7=jsonObject1.getString("breedName");HashMap<String,String>map=newHashMap<String,String>();map.put("id",j6);map.put("name",j7);myArrayList.add(map);}}}catch(JSONExceptione){e.printStackTrace();}returnnull;}@OverrideprotectedvoidonPostExecute(Objectresult){super.onPostExecute(result);start();}}privatevoidstart(){SimpleAdaptermySimpleAdapter=newSimpleAdapter(this,myArrayList,R.layout.list_item,newString[]{"id","name"},newint[]{R.id.name,R.id.age});list.setAdapter(mySimpleAdapter);list.setOnItemClickListener(newOnItemClickListener(){@OverridepublicvoidonItemClick(AdapterView<?>parent,Viewview,intposition,longid){@SuppressWarnings("unchecked")HashMap<String,String>map=(HashMap<String,String>)list.getItemAtPosition(position);Stringtitle=map.get("id");Stringcontent=map.get("name");Toast.makeText(getApplicationContext(),"你选择了第"+position+"个Item,itemTitle的值是:"+title+"itemContent的值是:"+content,Toast.LENGTH_SHORT).show();}});}}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。