书签 分享 收藏 举报 版权申诉 / 32
上传文档赚钱

类型Android移动应用开发基础教程第7章课件.pptx

  • 上传人(卖家):晟晟文业
  • 文档编号:5183042
  • 上传时间:2023-02-16
  • 格式:PPTX
  • 页数:32
  • 大小:2.08MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《Android移动应用开发基础教程第7章课件.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    Android 移动 应用 开发 基础教程 课件
    资源描述:

    1、Android移动应用开发基础教程讲授:XXXXX第7章 网络和数据解析本章主要内容:使用WebView 基于HTTP协议的网络访问方法 解析XML格式数据 解析JSON数据7.1 使用WebView WebView控件用于在Android应用中代替浏览器来显示网页。下面通过具体的实例说明如何使用WebView显示网页。首先在AndroidManifest.xml中申明网络访问权限为主活动布局添加一个WebView控件RelativeLayout xmlns:android=http:/ MainActivity.java protected void onCreate(Bundle save

    2、dInstanceState)super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);WebView webView=(WebView)findViewById(R.id.webView);WebSettings ws=webView.getSettings();ws.setJavaScriptEnabled(true);/启用JavaScript webView.setWebViewClient(new WebViewClient();/使页面导航保持在WebView中 webView.loadUrl

    3、(http:/);/载入网页7.2 基于HTTP协议的网络访问方法本节主要内容:1.使用HttpURLConnection2.使用OkHttp7.2.1 使用HttpURLConnection 使用HttpURLConnection的基本步骤 第1步:调用URL对象的openConnection()方法获得HttpURLConnection实例对象。例如:URL url=new URL(https:/);HttpURLConnection con=(HttpURLConnection)url.openConnection();第2步:设置HTTP请求方法。例如:con.setRequestMe

    4、thod(GET);常用HTTP请求方法主要有GET和POST两种(注意大写)。GET方法一般用于仅仅希望从服务器返回数据,POST则可向服务器提交数据。第3步:设置请求相关参数。例如,可设置连接和请求的超时设置(单位为毫秒)。con.setConnectTimeout(6000);con.setReadTimeout(6000);如果是采用POST方式,则需要使用DataOutputStream来添加需要向服务器提交的数据。例如:con.setRequestMethod(POST);con.setDoOutput(true);DataOutputStream out=new DataOutp

    5、utStream(con.getOutputStream();out.writeBytes(id=admin&pwd=123);向服务器提交的数据采用键值对的方式表示,键值对之间用&符号分隔。第4步:处理返回结果。调用HttpURLConnection对象的getInputStream()方法,获得服务器返回结果的InputStream,从中可获取服务器返回结果。例如:InputStream in=con.getInputStream();reader=new BufferedReader(new InputStreamReader(in);StringBuilder result=new S

    6、tringBuilder();String s;s=reader.readLine();while(s!=null)result.append(s);s=reader.readLine();7.2.2 使用OkHttp HttpURLConnection 将服务器响应结果封装在InputStream中,需要编程从中读取结果。OkHttp是Square公司开发的一个开源HTTP访问项目,使用起来非常简单。OkHttp主页地址为http:/square.github.io/okhttp,从中可了解OkHttp详细信息。目前,OkHttp最新版本为3.8.0。使用OkHttp步骤 第1步:需要修改项

    7、目的app/build.gradle文件,添加OkHttp库编译信息。例如:dependencies compile com.android.support:appcompat-v7:25.3.1 testCompile junit:junit:4.12 compile com.squareup.okhttp3:okhttp:3.8.0 Gradle在构建项目时,可自动下载需要的OkHttp相关的库文件。使用OkHttp步骤 第2步:创建OkHttpClient对象。例如:OkHttpClient okClient=new OkHttpClient();第3步:创建Request.Builde

    8、r来创建Request对象。例如:Request.Builder builder=new Request.Builder();builder.url(https:/);Request request=builder.build();默认OkHttp使用GET方法完成Http请求。如果要使用POST方法向服务器提交数据,则需要创建RequestBody对象来封装数据。例如:RequestBody requestBody=new FormBody.Builder().add(id,admin).add(password,123).build();builder.post(requestBody);

    9、使用OkHttp步骤 第4步:调用Request对象的execute()方法执行请求,返回结果封装在Response对象中。例如:Response response=okClient.newCall(request).execute();第5步:获得字符串形式的返回结果。例如:String result=response.body().string();7.3 解析XML格式数据 XML已成为一种常用的数据交换格式。应用的配置、应用之间交换数据或者是网络数据传输,都会用到XML格式。http:/ 准备XML数据 在学习如何解析从服务器获得的XML数据之前,先做一些准备工作,准备好服务器端的XM

    10、L数据。本书采用Windows 10自带的IIS作为Web服务器,在服务器中创建的XML文件getxml.xml。admin 123 jike 456 7.3.2 DOM解析方式 DOM 将XML文档看作是一个树形结构,每个标签作为一个节点。DOM解析会遍历XML文档的树形结构,以获得节点和节点文本。读者可访问http:/ DOM详细内容。下面通过一个实例说明如何在Android应用中获取并解析XML文档。(实例项目:源代码07ParseXml)实例关键步骤:申明网络访问权限 实例关键步骤:修改app/build.gradle,添加OkHttp编译信息dependencies compile

    11、com.squareup.okhttp3:okhttp:3.8.0实例关键步骤:为主活动布局添加控件LinearLayout 实例关键步骤:修改MainActivity.javaprotected void onCreate(Bundle savedInstanceState)super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tvXml=(TextView)findViewById(R.id.tvXml);Button btGetXml=(Button)findViewById(R.id.btGe

    12、tXml);btGetXml.setOnClickListener(new View.OnClickListener()Override public void onClick(View v)/点击按钮时通过HTTP请求获取XML文档 new Thread(new Runnable()Override public void run()doUrlGet();).start(););实例关键步骤:修改MainActivity.javaButton btDomXml=(Button)findViewById(R.id.btDomXml);btDomXml.setOnClickListener(ne

    13、w View.OnClickListener()Override public void onClick(View v)/点击按钮时解析XML文档 TextView tvDomResult=(TextView)findViewById(R.id.tvDomResult);tvDomResult.setText(domXml(););实例关键步骤:修改MainActivity.javaprivate void doUrlGet()/使用OkHttp获取XML文档 try OkHttpClient okClient=new OkHttpClient();Request.Builder builde

    14、r=new Request.Builder();builder.url(http:/192.168.0.104/getxml.xml);Request request=builder.build();Response response=okClient.newCall(request).execute();showResult(response.body().string();catch(Exception e)e.printStackTrace();实例关键步骤:修改MainActivity.javaprivate void showResult(final String result)ru

    15、nOnUiThread(new Runnable()/返回主线程 Override public void run()tvXml.setText(result);/在TextView中显示XML文档 );实例关键步骤:修改MainActivity.javaprivate String domXml()/使用DOM解析XML文档 try String xmlData=tvXml.getText().toString();DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();DocumentBuilder build

    16、er=factory.newDocumentBuilder();InputSource data=new InputSource(new ByteArrayInputStream(xmlData.getBytes(UTF-8);Document document=builder.parse(data);Element root=document.getDocumentElement();NodeList nodes=root.getElementsByTagName(user);String result=;实例关键步骤:修改MainActivity.java for(int i=0;inod

    17、es.getLength();i+)Element user=(Element)nodes.item(i);Element id=(Element)user.getElementsByTagName(id).item(0);Element password=(Element)user.getElementsByTagName(password).item(0);result+=id=+id.getTextContent();result+=npassword=+password.getTextContent();result+=n;return result;catch(Exception e

    18、)e.printStackTrace();return;小结:使用DOM解析XML文档的步骤1.创建DocumentBuilderFactory对象。2.创建DocumentBuilder对象。3.将XML文档封装到InputSource对象中。4.使用DocumentBuilder对象解析InputSource获得表示XML文档的Document对象。5.调用Document对象的相关方法获取XML文档各个节点及其文本。7.3.3 Pull解析方式 Pull解析方式将XML文档作为输入“流”来处理,依次读取每个标签,根据标签类型来处理相应数据。使用Pull解析XML文档的步骤主要包括:1、创

    19、建一个XmlPullParser对象作为解析器。例如:XmlPullParserFactory xmlFactory=XmlPullParserFactory.newInstance();XmlPullParser xmlPullParser=xmlFactory.newPullParser();2、将XML文档设置为解析器的输入。例如:xmlPullParser.setInput(new StringReader(xmlData);3、获得事件类型。Pull根据标签的类型(开始标签、结束标签)来觉得事件类型。解析XML文档主要用到3种事件类型:END_DOCUMENT(文档结束)、STAR_

    20、TAG(开始标签)和END_TAG(结束标签)。例如:int event=xmlPullParser.getEventType();/获得当前事件类型event=xmlPullParser.next();/获得下一个事件类型 调用next()方法时,输入流指针前进到下一个标签位置,知道文档结束。4、获取当前节点数据 如果事件类型不是文档结束,则可调用相应方法获取当前标签数据。例如:String nodeName=xmlPullParser.getName();/获得标签名称 String text=xmlPullParser.nextText()/获得标签的文本内容实例项目:源代码07Pars

    21、eXmlprotected void onCreate(Bundle savedInstanceState)Button btPullXml=(Button)findViewById(R.id.btPullXml);btPullXml.setOnClickListener(new View.OnClickListener()Override public void onClick(View v)/点击按钮时解析XML文档 TextView tvPullResult=(TextView)findViewById(R.id.tvPullResult);tvPullResult.setText(pu

    22、llXml(););private String pullXml()try String xmlData=tvXml.getText().toString();XmlPullParserFactory xmlFactory=XmlPullParserFactory.newInstance();XmlPullParser xmlPullParser=xmlFactory.newPullParser();xmlPullParser.setInput(new StringReader(xmlData);int event=xmlPullParser.getEventType();/获得当前事件类型

    23、String result=,nodeName=;while(event!=xmlPullParser.END_DOCUMENT)nodeName=xmlPullParser.getName();/获得标签名称 if(event=xmlPullParser.START_TAG)if(nodeName.equals(id)result+=id=+xmlPullParser.nextText()+n;/获得标签文本进行处理 else if(nodeName.equals(password)result+=password=+xmlPullParser.nextText()+n;event=xmlP

    24、ullParser.next();/获得下一个事件类型 return result;7.4 解析JSON数据 JSON主要以键值对的方式表示数据。例如:jike:极客学院,users:id:admin,password:123,id:jike,password:456 最外围的花括号表示这是一个JSON格式的对象数据,该对象有两个键:jike和users。jike的值时一个字符串,users的值是一个数组,数组有两个对象。JSON与XML相比更简洁,可以节省网络传输时间。使用org.json包提供的JSONArray、JSONObject等类可轻松完成JSON数据解析。下面的代码可用于解析前面

    25、的这个JSON字符串try JSONObject json=new JSONObject(data);String result=jike=+json.getString(jike)+n;/获得指定键的值 JSONArray users=json.getJSONArray(users);/获得指定键的数组 for(int i=0;iusers.length();i+)JSONObject item=users.getJSONObject(i);/获得一个数组元素 result+=user+(i+1)+id=+item.getString(id)+;/获取键值 result+=password=+item.getString(password)+n;return result;catch(Exception e)

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:Android移动应用开发基础教程第7章课件.pptx
    链接地址:https://www.163wenku.com/p-5183042.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库