AsyncTask+HttpUrlConnection网络请求解析XML且定位
来源:互联网 发布:乡村学生教育数据 编辑:程序博客网 时间:2024/05/16 11:42
package com.example.location;import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.util.List;import com.baidu.location.BDLocation;import com.baidu.location.BDLocationListener;import com.baidu.location.LocationClient;import com.baidu.location.LocationClientOption;import com.baidu.location.LocationClientOption.LocationMode;import com.baidu.mapapi.SDKInitializer;import com.example.adapter.MyListAdapter;import com.example.bean.Book;import com.example.bean.BookAll;import com.thoughtworks.xstream.XStream;import android.app.Activity;import android.content.Intent;import android.os.AsyncTask;import android.os.Bundle;import android.util.Log;import android.view.KeyEvent;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.ListView;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity{ private TextView text; public LocationClient mLocationClient = null; public BDLocationListener myListener = new MyLocationListener(); String path="http://apis.juhe.cn/goodbook/catalog?key=9d6ef8c31647a206e05fcaff70527182&dtype=xml"; List<Book> list; ListView listview; long mExitTime; @Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); SDKInitializer.initialize(getApplicationContext()); setContentView(R.layout.activity_main); listview=(ListView) findViewById(R.id.listview); text=(TextView) findViewById(R.id.text); Dingwei(); new getAsyTask().execute(); listview.setOnItemClickListener(new OnItemClickListener(){ @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub Intent it=new Intent(MainActivity.this,InfoActivity.class); it.putExtra("id",list.get(position).getId()); startActivity(it); } }); } //联网请求操作 private class getAsyTask extends AsyncTask<String,Integer,InputStream>{ @Override protected InputStream doInBackground(String... params) { // TODO Auto-generated method stub InputStream inputStream=null; try { URL url=new URL(path); try { HttpURLConnection connection=(HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setReadTimeout(5000); connection.setConnectTimeout(5000); connection.connect(); if(connection.getResponseCode()==200){ inputStream=connection.getInputStream(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (MalformedURLException e){ // TODO Auto-generated catch block e.printStackTrace(); } return inputStream; } @Override protected void onPostExecute(InputStream result){ // TODO Auto-generated method stub super.onPostExecute(result); initdata(result); MyListAdapter mylistadapter=new MyListAdapter(MainActivity.this, list); listview.setAdapter(mylistadapter); } } //解析数据 private void initdata(InputStream stream){ XStream xs=new XStream(); xs.processAnnotations(BookAll.class); BookAll bookall=(BookAll) xs.fromXML(stream); list=bookall.getResult().getItem(); } //设置定位 private void Dingwei(){ mLocationClient = new LocationClient(getApplicationContext()); // 声明LocationClient类 mLocationClient.registerLocationListener(myListener); // 注册监听函数 initLocation(); mLocationClient.start(); } //设置定位的参数 private void initLocation(){ LocationClientOption option = new LocationClientOption(); option.setLocationMode(LocationMode.Hight_Accuracy);//可选,默认高精度,设置定位模式,高精度,低功耗,仅设备 option.setCoorType("bd09ll");// 可选,默认gcj02,设置返回的定位结果坐标系 int span = 1000; option.setScanSpan(span);// 可选,默认0,即仅定位一次,设置发起定位请求的间隔需要大于等于1000ms才是有效的 option.setIsNeedAddress(true);// 可选,设置是否需要地址信息,默认不需要 option.setOpenGps(true);// 可选,默认false,设置是否使用gps option.setLocationNotify(true);// 可选,默认false,设置是否当gps有效时按照1S1次频率输出GPS结果 option.setIsNeedLocationDescribe(true);// 可选,默认false,设置是否需要位置语义化结果,可以在BDLocation.getLocationDescribe里得到,结果类似于“在北京天安门附近” option.setIsNeedLocationPoiList(true);// 可选,默认false,设置是否需要POI结果,可以在BDLocation.getPoiList里得到 option.setIgnoreKillProcess(false);// 可选,默认true,定位SDK内部是一个SERVICE,并放到了独立进程,设置是否在stop的时候杀死这个进程,默认不杀死 option.SetIgnoreCacheException(false);// 可选,默认false,设置是否收集CRASH信息,默认收集 option.setEnableSimulateGps(false);// 可选,默认false,设置是否需要过滤gps仿真结果,默认需要 mLocationClient.setLocOption(option); } public class MyLocationListener implements BDLocationListener{ public void onReceiveLocation(BDLocation location) { text.setText(location.getCity()); } }}
0 0
- AsyncTask+HttpUrlConnection网络请求解析XML且定位
- (HttpURLConnection )AsyncTask解析xml
- HttpUrlConnection + AsyncTask请求xml格式,HttpClient + Thread + Handler请求json
- 使用HttpURLConnection请求Gson网络解析数据
- 网络连接+HttpUrlConnection+AsyncTask
- xml解析网络请求
- 网络请求XML解析XML
- OkHttp网络请求框架+AsyncTask自动解析
- 使用AsyncTask+HttpURLConnection请求数据
- HttpClient请求网络 xml解析
- 网络请求xml PULL解析
- 请求网络之HttpUrlConnection
- HttpURLConnection请求网络
- HttpURLConnection 网络请求数据
- HttpURLConnection+URl网络请求
- HttpURLConnection网络请求
- HttpURLConnection网络请求
- HttpUrlConnection网络请求
- UVA 11404 Palindromic Subsequence LCS
- opencv学习笔记3-初探特征识别
- 面试之路(21)-链表的倒序实现
- BCD码
- ButterKnife 8.0.1
- AsyncTask+HttpUrlConnection网络请求解析XML且定位
- cuda 7.5
- 利用jsp将网页文本框中的数据存储到数据库中(get方法示例)
- 第3课:通过案例对SparkStreaming 透彻理解三板斧之三:解密SparkStreaming运行机制和架构进阶.
- 用小猫统计制作运动员评价管理系统:分别制作子表的编辑界面
- Ant简易教程
- Problem R
- 链表
- 为了解决一些麻烦的事情