输入英语单词实现(post网络请求)在线翻译,支持多种语言翻译

首先在xml文件上界面布局
采用LinearLayout来布局界面,并添加一个按钮来进行网络请求翻译,在添加一个EditText来输入我们要进行翻译的英语单词,最后添加一个TextView控件来显示翻译结果

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"android:orientation="vertical"><EditTextandroid:id="@+id/e1"android:layout_marginTop="50dp"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_gravity="center"/><Buttonandroid:id="@+id/b1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:text="翻译" /><TextViewandroid:id="@+id/t1"android:layout_width="match_parent"android:layout_height="wrap_content"android:textSize="20sp"android:gravity="center"android:layout_marginTop="50dp"/></LinearLayout>

界面效果截图

第二在Mainactivity.java完成功能的实现

第一步:绑定id

第二步:按钮添加监听事件


第三步:完成网络的请求

在网络请求之前在AndroidManifest.xml文件中添加网络权限

<uses-permission android:name="android.permission.INTERNET"/>

定义一个请求接口

 private void requestDate(){}

在该接口进行网络请求

    private void requestDate(){String url="http://fanyi.youdao.com/translate?&doctype=json&type=AUTO";//请求地址OkHttpClient okHttpClient=new OkHttpClient();RequestBody requestBody=new FormBody.Builder().add("i",e1.getText().toString()).build();final Request request=new Request.Builder().url(url)//  .get()//默认就是GET请求,可以不写.post(requestBody).build();Call call=okHttpClient.newCall(request);call.enqueue(new Callback() {@Overridepublic void onFailure(Call call, IOException e) {}@Overridepublic void onResponse(Call call, Response response) throws IOException {Log.d(TAG,response.body().toString());String result=response.body().string();Gson gson=new Gson();final DataModel dataModel=gson.fromJson(result,DataModel.class);handler.post(new Runnable() {@Overridepublic void run() {refreshDate(dataModel);}});}});}

第四步:提取解析后的相关数据

   private  void refreshDate(DataModel dataModel){if(dataModel==null||dataModel.getTranslateResult()==null){return;}DataModel.TranslateResultBean translateResultBean=dataModel.getTranslateResult().get(0).get(0);//获取第一条数据t1.setText(translateResultBean.getTgt());//获取翻译结果并在文本控件显示}

最后一步:数据解析
定义一个类DataModel .class

public class DataModel implements Serializable {}

复制链接请求的json全部数据

使用快捷键(Alt+s)粘贴全部过去数据,之后一直点击OK

如果需要在真机使用软件,请在(AndroidManifest.xml)中的application输入以下代码,防止真机对网络请求不了

android:usesCleartextTraffic="true"

下面是本项目的源代码
https://download.csdn.net/download/Scxioi0/12902502

Android 输入英语单词实现(post网络请求)在线翻译,支持多种语言翻译相关推荐

  1. 实现uniapp的app和小程序开发中能使用axios进行跨域网络请求,并支持携带cookie

    实现uniapp的app和小程序开发中能使用axios进行跨域网络请求,并支持携带cookie 1-使用npm install axios;命令安装axios 2-新建一个文件夹再建一个.js后缀文件 ...

  2. Android RxJava应用:优雅实现网络请求轮询(无条件)

    前言 Rxjava,由于其基于事件流的链式调用.逻辑简洁 & 使用简单的特点,深受各大 Android开发者的欢迎. 今天,我将为大家带来 Rxjava创建操作符的常见开发应用场景:轮询需求 ...

  3. Xamarin.Android之封装个简单的网络请求类

    http://doc.okbase.net/catcher1994/archive/220195.html Catcher8 2016/4/23 0:28:50 阅读(72) 评论(0) 一.前言 回 ...

  4. Android之封装好的异步网络请求框架

    1.简介  Android中网络请求一般使用Apache HTTP Client或者采用HttpURLConnection,但是直接使用这两个类库需要写大量的代码才能完成网络post和get请求,而使 ...

  5. Android强制在主线程进行网络请求

    protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentVie ...

  6. 计算机房英语单词,计算机与网络英语词汇(O1)

    News 计算机与网络英语词汇(O1) Source: 2008-07-14 我要投稿 论坛   Favorite OA, office automation 办公室自动化 object 物件 obj ...

  7. Android OkHttp+Retrofit+Rxjava+Hilt 的网络请求封装

    今天给大家简单的封装一个现在比较流行的网络请求框架 第一步是导入我们所需要的依赖还需要在android {}闭包下添加一个 buildFeatures{viewBinding true } imple ...

  8. android 星座运势接口,2018-04-26—网络请求(例:星座运势app实现)

    上一节给大家讲了一个比较无聊的东西,这节就会派上用场了,哈哈,今天给大家讲解的是网络请求,我们做的APP很少是单机的App吧,一般情况下多多少少都会用到一些网络请求,而他具体是怎么实现的呢?今天我们来 ...

  9. Android肝帝战纪之网络请求框架封装(Retrofit的封装)

    网络请求框架封装(OkHttp3+Retrofit+loading的封装) Retrofit的Github链接 点此链接到Github AVLoadingIndicatorView的Github链接( ...

最新文章

  1. 从零学React Native之12 组件的生命周期
  2. 怎么判断网络回路_收藏|电梯安全回路分析说明及故障判断
  3. java英语ppt_来了!思维导图一键转PPT来了!
  4. include 路由 php,PHP简单路由
  5. 如何取消计算机用户名,Win10如何取消登录界面显示用户名?
  6. Docker - Compose 使用说明、详解docker-compose
  7. centos 7安装_OrthoMCL软件安装
  8. 广东计算机学会 信息学省初赛,全国青少年信息学奥林匹克竞赛联赛-广东计算机学会...
  9. 号称 GitHub 上有史以来,高仿版微信最牛逼的项目来了(附完整源码)
  10. Ubuntu文件系统损坏修复
  11. mysql root 访问被拒绝_mysql-“连接失败:用户'root'@'localhost'(使用密码:是)的访问被拒绝”...
  12. 背包问题leetcode
  13. My_blog个人博客系统
  14. 事件模式归纳相关研究简述
  15. 如何提高文案策划能力?
  16. 在fastreport里转换金额大小写
  17. java无法重命名文件_巧妙地解决Java文件重命名失败的问题
  18. Numpy应用100问
  19. AliOS Things物联网操作系统
  20. AirDIsk产品第三方Samba同步工具

热门文章

  1. 男女用户的不同偏好:扩展型和维护型游戏
  2. HTC Desire制作金卡升级ROM完全教程
  3. Python中的文件处理
  4. 【杂谈】珍惜最后的学校生活
  5. python plt图标隐藏坐标轴(隐藏而不是去除)
  6. adb.exe可能被其他程序关闭_苹果应用程序崩溃闪退怎么办?如何解决苹果设备的软故障?...
  7. 解析app出现闪退,解析.crash文件
  8. c语言带小数点的除法,高精度除法小数点位数
  9. 「从O2O到私域流量」2021长三角(南京)智慧零售大会报名通道开启!
  10. log4j打印出线程号和方法名