运行效果图

有道翻译的API

http://fanyi.youdao.com/openapi.do?keyfrom=lewe518&key=70654389&type=data&doctype=json&version=1.1&q=?

“?”里填单词或者汉语

设计思路

1.界面设计

2.实现功能:在输入框输入后,点击查询,连接有道翻译API查询,在文本框输出查询结果

网络请求的操作图:

准备工作

①OkHttp3包 OkHttp3包的导入

②GSON包 GSON包的导入

③网络权限 网络授权方法

实现代码

界面xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_main"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.example.administrator.queryword.MainActivity"><EditTextandroid:layout_width="match_parent"android:layout_height="50dp"android:hint="请输入查询内容"android:id="@+id/et"/><TextViewandroid:layout_width="match_parent"android:layout_height="50dp"android:layout_below="@+id/et"android:id="@+id/tv"/><Buttonandroid:layout_width="match_parent"android:layout_height="50dp"android:text="查询"android:layout_below="@+id/tv"android:onClick="query"/>
</RelativeLayout>

MainActivity

package com.example.administrator.queryword;import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;import com.example.administrator.queryword.model.Basic;
import com.example.administrator.queryword.model.Word;import org.json.JSONException;
import org.json.JSONObject;import java.io.IOException;import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import util.JsonUitl;/*** 实现单词查询* @author thinkdoor** 1.界面初始化* 2.创建handler* 3.实现上网查词*      1.创建OkClient和Request对象*      2.创建Call对象*      3.重写Call对象的enCall方法*          1.获取响应数据*          2.封装成json对象*          3.转为java对象*          4.创建message对象包裹信息*          5.发送给handler*  4.handler获取消息进行处理*      1.获取对象*      2.获取数据*      3.在界面显示*/
public class MainActivity extends AppCompatActivity {//日志打印private String TAG = "MainActivity";//1.界面初始化EditText editText;TextView textView;//2.创建handlerprivate Handler handler = new Handler(){//4.handler获取消息进行处理@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);//1.获取对象Word word = (Word) msg.obj;//2.获取数据Basic basic = word.getBasic();String explains = null;explains = basic.getStrings(basic.getExplains());//3.在界面显示textView.setText(explains);}};/*** 界面创建* @param savedInstanceState*/@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);editText = (EditText) findViewById(R.id.et);textView = (TextView) findViewById(R.id.tv);}/*** 查询按钮的监听方法* @param view*/public void query(View view){String word = editText.getText().toString();//调用上网查词方法queryWord(word);}/*** 3.实现上网查词1.创建OkClient和Request对象2.创建Call对象3.重写Call对象的enCall方法1.获取响应数据2.封装成json对象3.转为java对象4.发送message给handler* @param s 要查询的单词*/public void queryWord(String s){String url = "http://fanyi.youdao.com/openapi.do?keyfrom=lewe518&key=70654389&type=data&doctype=json&version=1.1&q="+s;//1.创建OkClient和Request对象OkHttpClient okHttpClient = new OkHttpClient();final Request request = new Request.Builder().url(url).get().build();//2.创建Call对象Call call = okHttpClient.newCall(request);//3.重写Call对象的enqueue方法call.enqueue(new Callback() {@Overridepublic void onFailure(Call call, IOException e) {Log.d(TAG, "onFailure: ");}@Overridepublic void onResponse(Call call, Response response) throws IOException {//1.获取响应数据String str = response.body().string();Log.d(TAG, "onResponse: " + str);try {//2.封装成json对象JSONObject jsonObject = new JSONObject(str);//3.转为java对象Word word = (Word) JsonUitl.stringToObject(jsonObject.toString(),Word.class);//4.创建message,包裹信息Message message = new Message();message.obj = word;//5.发送message给handlerhandler.sendMessage(message);} catch (JSONException e) {e.printStackTrace();}}});}
}

源码链接:

链接:https://pan.baidu.com/s/1a9URY6u-jaovrm5it8xZKQ 
提取码:qxog 

要是觉得还可以,点个再走吧!求求了~

Android开发——手把手写APP(三)调用有道词典翻译API实现的翻译APP(详细备注解读)相关推荐

  1. Android开发——手把手写APP(二)QQ退出对话框动画模拟

    运行效果图 实现代码 首先,主页面就是一个backgroud的图片,并不是真正的QQ. 主要就是这个dialog的对话框和animation的动画效果. 还是先前端,再后端的思路. 1.界面设计 这个 ...

  2. Android开发——手把手写APP(四)——数独游戏编写(七)——总结

    总结 文章目录 总结 出现的问题 学到的东西 出现的问题 1.逻辑很绕,Dialog.ShuduView.Game中的方法来回的调用容易被绕晕,一定要注意逻辑的清晰,一定要清楚哪个是界面,哪个是逻辑. ...

  3. Java Swing 调用有道词典API实现自定义桌面翻译字典

    具体实现内容长这个样子: 下面开始具体的内容准备: 要调用有道词典的API,必须先申请API 进入网址(https://ai.youdao.com/?keyfrom=old-openapi) 先登录注 ...

  4. [python爬虫]--调用有道词典进行翻译

    最近在学习python爬虫,写出来的一些爬虫记录在csdn博客里,同时备份一个放在了github上. github地址:https://github.com/wjsaya/python_spider_ ...

  5. 【Android开发VR实战】三.开发一个寻宝类VR游戏TreasureHunt

    转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53939303 本文出自[DylanAndroid的博客] [Android开发 ...

  6. Android开发笔记(一百三十七)自定义行为Behavior

    协调布局CoordinatorLayout能够让内部的子控件互相配合着移动,这跟以往孤立的控件运动截然不同,协调运动的结果,意味着App画面更加流畅.自然,也更符合日常生活中的动作场景.如果你对Coo ...

  7. Android开发笔记(一百三十六)可折叠工具栏布局CollapsingToolbarLayout

    可折叠工具栏布局CollapsingToolbarLayout 上一篇博文< Android开发笔记(一百三十五)应用栏布局AppBarLayout>阐述了如何把Toolbar往上滚动,那 ...

  8. Android开发笔记(一百三十五)应用栏布局AppBarLayout

    应用栏布局AppBarLayout Android5.0推出工具栏Toolbar用来替代ActionBar,灵活性和易用性大大增强,有关Toolbar的详细介绍参见< Android开发笔记(一 ...

  9. 《阿里巴巴 Android 开发手册》(三)

    <阿里巴巴 Android 开发手册>(三) 手册下载地址 相关文章链接 <阿里巴巴 Android 开发手册>(一) <阿里巴巴 Android 开发手册>(二) ...

最新文章

  1. 起薪2万的爬虫工程师, Python需要学到什么程度才可以就业?
  2. Python学习笔记之基础(二)变量和类型
  3. C/C++结构体struct 与结构体数组和枚举型enum的结合使用
  4. 演练 青鸟游戏迷你平台
  5. Laravel核心解读--Database(三) 模型CRUD
  6. 爬虫百度图片进入百度验证怎么办?
  7. CSFB和SRVCC
  8. 西工大noj(25,26)
  9. Windows64Adobe2019/2019全家桶
  10. 雨听 | 英语学习笔记(十五)~作文范文:私家车主应该为环境污染纳税吗?
  11. ESP32产品系列之智能插座(一),框架及硬件设计
  12. 多目标优化系列(四)RM-MEDA
  13. 走到最后,摩拜连姓名都不能拥有?
  14. Shell脚本实现自动检测/配置/开启/关闭redis后台服务
  15. 2021-07-09 终值定理和稳态误差【自动控制原理】
  16. SAP SD VL31N BBP_INB_DELIVERY_CREATE 根据采购订单创建内向交货单
  17. Windows--UEFI引导安装Win10
  18. K8S之初入师门第一篇熟读手册
  19. QT 读取和写入注册表
  20. GIS工具maptalks开发手册(二)01-02之GeoJSON转化为Geometry——渲染点

热门文章

  1. YA-C21A型二氧化碳传感器
  2. 利用VBA实现:提取Excel单元格数字
  3. linux 0.11 编译 msed,Linux下sed命令使用
  4. 财富顾问负责什么工作
  5. 最垃圾的系统之一:广东省自学考试管理系统
  6. 北京工业大学计算机学院廊坊,北京工业大学计算机学院研究生院
  7. 加拿大计算机科学专业申请,加拿大计算机专业申请条件
  8. java中文名称是什么_Java的中文意思是什么?
  9. 普通用户怎样获得管理员权限
  10. php blowfish 解密,PHP实例:php blowfish加密解密算法