Android 输入英语单词实现(post网络请求)在线翻译,支持多种语言翻译
输入英语单词实现(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网络请求)在线翻译,支持多种语言翻译相关推荐
- 实现uniapp的app和小程序开发中能使用axios进行跨域网络请求,并支持携带cookie
实现uniapp的app和小程序开发中能使用axios进行跨域网络请求,并支持携带cookie 1-使用npm install axios;命令安装axios 2-新建一个文件夹再建一个.js后缀文件 ...
- Android RxJava应用:优雅实现网络请求轮询(无条件)
前言 Rxjava,由于其基于事件流的链式调用.逻辑简洁 & 使用简单的特点,深受各大 Android开发者的欢迎. 今天,我将为大家带来 Rxjava创建操作符的常见开发应用场景:轮询需求 ...
- Xamarin.Android之封装个简单的网络请求类
http://doc.okbase.net/catcher1994/archive/220195.html Catcher8 2016/4/23 0:28:50 阅读(72) 评论(0) 一.前言 回 ...
- Android之封装好的异步网络请求框架
1.简介 Android中网络请求一般使用Apache HTTP Client或者采用HttpURLConnection,但是直接使用这两个类库需要写大量的代码才能完成网络post和get请求,而使 ...
- Android强制在主线程进行网络请求
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentVie ...
- 计算机房英语单词,计算机与网络英语词汇(O1)
News 计算机与网络英语词汇(O1) Source: 2008-07-14 我要投稿 论坛 Favorite OA, office automation 办公室自动化 object 物件 obj ...
- Android OkHttp+Retrofit+Rxjava+Hilt 的网络请求封装
今天给大家简单的封装一个现在比较流行的网络请求框架 第一步是导入我们所需要的依赖还需要在android {}闭包下添加一个 buildFeatures{viewBinding true } imple ...
- android 星座运势接口,2018-04-26—网络请求(例:星座运势app实现)
上一节给大家讲了一个比较无聊的东西,这节就会派上用场了,哈哈,今天给大家讲解的是网络请求,我们做的APP很少是单机的App吧,一般情况下多多少少都会用到一些网络请求,而他具体是怎么实现的呢?今天我们来 ...
- Android肝帝战纪之网络请求框架封装(Retrofit的封装)
网络请求框架封装(OkHttp3+Retrofit+loading的封装) Retrofit的Github链接 点此链接到Github AVLoadingIndicatorView的Github链接( ...
最新文章
- 从零学React Native之12 组件的生命周期
- 怎么判断网络回路_收藏|电梯安全回路分析说明及故障判断
- java英语ppt_来了!思维导图一键转PPT来了!
- include 路由 php,PHP简单路由
- 如何取消计算机用户名,Win10如何取消登录界面显示用户名?
- Docker - Compose 使用说明、详解docker-compose
- centos 7安装_OrthoMCL软件安装
- 广东计算机学会 信息学省初赛,全国青少年信息学奥林匹克竞赛联赛-广东计算机学会...
- 号称 GitHub 上有史以来,高仿版微信最牛逼的项目来了(附完整源码)
- Ubuntu文件系统损坏修复
- mysql root 访问被拒绝_mysql-“连接失败:用户'root'@'localhost'(使用密码:是)的访问被拒绝”...
- 背包问题leetcode
- My_blog个人博客系统
- 事件模式归纳相关研究简述
- 如何提高文案策划能力?
- 在fastreport里转换金额大小写
- java无法重命名文件_巧妙地解决Java文件重命名失败的问题
- Numpy应用100问
- AliOS Things物联网操作系统
- AirDIsk产品第三方Samba同步工具