Android项目驱动式开发教程课件作者刘正主编第11章节综合示例开发.pptVIP

  • 5
  • 0
  • 约8.66千字
  • 约 38页
  • 2017-11-12 发布于广东
  • 举报

Android项目驱动式开发教程课件作者刘正主编第11章节综合示例开发.ppt

3.3 按钮控件的功能与使用方法 数据返回格式 数据返回格式 { “from”:”zh”, “to”:”en”, “trans_result”:[] } 参数 from 实际采用的源语言 to 实际采用的目标语言 trans_result 翻译结果,其内容由若干个数组组成,每个数组都为一段翻译结果,其中src表示翻译的原文,dst表示翻译的结果。 { “src”:””, “dst”:”” } GET请求实例 { “from”: “en”, “to”: “zh”, “trans_result”: [ { “src”: “today”, “dst”: “今天” }, { “src”: “tomorrow”, “dst”: “明天” } ] } 11.5百度实时翻译的实现 以上面便是百度翻译服务的使用方法,那么对于Android程序来说主要完成的就是两方面的工作,一个是向服务器的提交翻译请求,另一个则是从服务器上获取翻译结果,并显示在屏幕中,如图11-8所示。在前面章节中说过在Android 3.0以后所有耗时操作都必须放在线程中完成,如网络数据访问,因此在本模块最重要的就是网络交互的线程代码,具体代码如下: 图11-8 百度翻译 11.5百度实时翻译的实现 1 public void run() { 2 // TODO Auto-generated method stub 3 // HTTP GET操作对象 4 HttpGet httpGet = new HttpGet(getTranslateURL(mSrcText, mTranslateIndex)); 5 HttpClient httpClient = new DefaultHttpClient(); 6 try { 7 HttpResponse httpResponse = httpClient.execute(httpGet); 8 if (httpResponse.getStatusLine().getStatusCode() 9 == HttpStatus.SC_OK) { 10 String translateData = EntityUtils.toString(httpResponse 11.5百度实时翻译的实现 11 .getEntity()); 12 // 把数据放到消息中发送给主线程 13 Message msg = new Message(); 14 Bundle data = new Bundle(); 15 data.putString(TRAN_DATA, translateData); 16 msg.setData(data); 17 mTranslateHandler.sendMessage(msg); 18 } 19 } catch (ClientProtocolException e) { 20 // TODO Auto-generated catch block 21 e.printStackTrace(); 22 } catch (IOException e) { 11.5百度实时翻译的实现 23 // TODO Auto-generated catch block 24 e.printStackTrace(); 25 } 26 } 第4行中的getTranslateURL( )函数是一个自定义函数,用于获取完整GET操作地址,并通过这个地址初始化HttpClient工具中的HttpGet对象,该对象负责执行与云服务之间的GET操作。 第5行代码用于创建一个HttpClient对象,该对象通过执行HttpGet对象从而最终实现与云服务的交互。 第8、9行用于判断云服务返回的状态码,当返回结果为200时表示云服务响应正确。 第10行是从服务器返回的数据中提取所需内容,然后发送给主线程进行下一步处理。 11.5百度实时翻译的实现 当线程把数据返回后接下来就是解析这些数据和展示数据,数据解析的代码如下: 1 private String parseTranslateData(String translateData) { 2 // TODO Auto-generated method stub 3 String resData = ; 4 try { 5 JSONObject translateRes = new JSONObject(transl

文档评论(0)

1亿VIP精品文档

相关文档