内容及要求:

1.设计一个成语字典APP,要求此APP能够在手机上准确的看到成语的释义,并且能正确跳转。

2.设计主要的显示页面布局。

3.实现成语字典中添加成语的功能,删除成语的功能。

4.在打开此APP后,点击退出按钮能够退出此应用软件。

5.此APP能够在电脑上实现运行,并且此程序能够运行出来。

 

目  录

1   题目要求................................................... 3

2   系统设计................................................... 3

2.1   功能模块设计1......................................... 3

2.2   功能模块设计2......................................... 4

3   运行结果分析............................................... 4

4   总结....................................................... 4

参考文献...................................................... 4

1     题目要求

简单成语字典

理解和熟悉成语字典的功能以及怎么实现其主要功能的。主要实现界面布局、新建、修改、删除成语的功能。

  1. 设计一个成语字典的APP,要求此APP能够在手机上准确显示成语的释义,并且能正确跳转。

  2. 设计主要的页面布局。

  3. 实现成语字典中添加成语的功能,删除成语的功能。

  4. 再打开此APP 后,点击退出按钮能够退出此应用程序。

  5. 此APP能够在电脑上实现运行,并且此程序能够运行出来。

1.1    功能模块设计1

描述本功能模块的设计,应包括

功能说明:

必要知识点:

  1. 首先要设计界面,作显示用的,如下图所示:

    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:layout_width="match_parent"     android:layout_height="match_parent"     android:paddingTop="@dimen/activity_vertical_margin"     tools:context="com.mycompany.myapplication.MainActivity"> <LinearLayout     android:layout_width="match_parent"     android:layout_height="match_parent"     android:orientation="vertical"     >     <TextView         android:id="@+id/toolbar"         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:text="成语字典"         android:textSize="38sp"         android:gravity="center"         />     <TextView         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:text="请输入成语:"         android:textSize="25sp"         />     <EditText         android:id="@+id/edit_word"         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:textSize="25sp" />     <Button         android:id="@+id/button"         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:text="开始查询"         android:textSize="24dp"         />     <TextView         android:id="@+id/result"         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:textSize="16sp"         /> </LinearLayout> </RelativeLayout>
  1. 界面是用来显示输入的成语的,当输入成语后,界面跳转如下图所示:

  2. 界面是用来显示此成语相关信息(拼音、释义、引申、出处、同义、反义)的,当点击开始查询后,界面跳转如下图所示:

    4.如果输入的不是成语或输入为空时,点击开始查询不会发生跳转。

1.2    功能模块设计2

  1. 在java中建立APP所要用到的类

    MainActivity.java 代码:

package com.mycompany.myapplication; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import com.kymjs.rxvolley.RxVolley; import com.kymjs.rxvolley.client.HttpCallback; import com.mycompany.myapplication.R; import org.json.JSONException; import org.json.JSONObject; public class MainActivity extends AppCompatActivity {     public static final String WORD_KEY = "07158adfcd1bf93c52e79f9026da5372";//在聚合数据里面申请的产品秘钥,拥有秘钥才能去访问这个网址     private EditText editword;     private TextView result,result1,result2;     private Handler handler;     private Button button;     @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);         initialize();         initData();     }     private void initData() {         button.setOnClickListener(new View.OnClickListener() {             @Override             public void onClick(View view) {                 switch (view.getId()){                     case R.id.button:                         final String edit_result=editword.getText().toString();                         handler= new Handler() {                             @Override                             public void handleMessage(Message msg) {//handlerThread组成异步线程访问网络                                 super.handleMessage(msg);                                 switch (msg.what) {                                     case 1:                                         if (edit_result!=null) {                                             String url= "http://v.juhe.cn/chengyu/query?key="+ WORD_KEY+"&word="+edit_result;                                                 RxVolley.get(url, new HttpCallback() {                                                 @Override                                                 public void onSuccess(String t) {//字符串是一个json格式的字符串,RxVolley是访问网络的一个框架,是添加的依赖                                                     super.onSuccess(t);                                                     result.setText(parseJson(t));                                                 }                                             });                                             break;                                         }else{                                             Toast.makeText(MainActivity.this, "输入的成语为空"+edit_result, Toast.LENGTH_SHORT).show();                                         }                                 }                             }                         };                         new Thread(){                             @Override                             public void run() {                                 super.run();                                 Message message=new Message();                                 message.what=1;                                 handler.sendMessage(message);                             }                         }.start();                         break;                 }             }         });     }     private void initialize() {         editword = (EditText) findViewById(R.id.edit_word);         result = (TextView) findViewById(R.id.result);         button= (Button) findViewById(R.id.button);     }     private String parseJson(String t) {//解析json字符串         String s="";         try {             JSONObject jsonObject = new JSONObject(t);             JSONObject result = jsonObject.getJSONObject("result");             String pinyin=result.getString("pinyin");             String chengyujs = result.getString("chengyujs");             String from_=result.getString("from_");             String yinzhengjs=result.getString("yinzhengjs");             s=chengyujs+from_+yinzhengjs;             String tongyi = result.getString("tongyi");            // s=s+tongyi;             s=chengyujs+from_+yinzhengjs+tongyi;             String fanyi = result.getString("fanyi");             s=chengyujs+from_+yinzhengjs+tongyi+fanyi;             //s=s+fanyi;            //s=chengyujs;         } catch (JSONException e) {             e.printStackTrace();         }         return s;     }

2     运行结果分析

基本能够实现成语的输入、查询功能,能够查询成语的释义、出处、引申、引申释义、近义词、反义词,并且能显示出来。

3     总结

本次主要是制作一个小型、简易的成语词典,实现打开软件可以在AVD 模拟器上,手机上进行成语的查询的过程,然后点击返回键可以退出程序。

本次设计运用了Android.bat,AVD Manager.bat 模拟器等工具实现了成语词典的开发,在开发的过程中出现了一系列的问题,但我都虚心请教了同学,进行了一系列的改正。比如:

  1. 在第一次运行时出现了输入成语,但是没有释义出现的问题,经过检查发现没有引入网站接口,在同学的相关指导下,从聚合数据中引入了“String url= "http://v.juhe.cn/chengyu/query?key="+ WORD_KEY+"&word="+edit_result;”用于实现输入成语后开始查询的一个接口;
  2. 在验证时,由于导入包的方法错误,导致程序出现问题,但在上网查询了相关的百度经验后,又询问了同学,解决了这一问题。
在讲解的时候也出现了一些问题,比如:
  1. 在老师问返回格式是一个JSON 类型的还是一个文本的时候,我说了是文本的,实际上返回的是一个JSON 类型的;
  2. 第一次给老师检查的时候代码只能实现成语的释义的实现,第二次添加了新的代码,可以对成语实现查询此成语的释义、出处、引申、引申释义、近义词、反义词的实现。

参考文献

  1. 来自聚合数据:https://www.juhe.cn/docs
  2. 来自网址:http://Android.Googlesource.com
  3. 来自网址:http://hukai.me
  4. 来自网址:https://zhidao.baidu.com
  5. 来自网址:http://m.csdn.net/
  6. 来自网址:http://jingyan.baidu.com
 
 

Android 小程序APP成语字典课程设计相关推荐

  1. Android小程序-乐学成语游戏(四)

    目标效果:      游戏页面有几个小游戏,因为时间原因只做了第一个猜成语,是用的选择题方式,十道题以内答对六题算闯关成功. 1.新建GameActivity.java页面和activity_game ...

  2. Android小程序-乐学成语背景音乐(五)

    目标效果: 第五个帮助页面改为设置页面,添加switch控件,播放背景音乐. 1.创建SetActivity.java页面和activity_set.xml页面,activity_set.xml页面放 ...

  3. Android安卓的家教平台设计小程序app毕业设计

    Android安卓的家教平台设计小程序app毕业设计

  4. 视频教程-老司机讲前端之微信小程序开发成语消消乐游戏视频课程-微信开发

    老司机讲前端之微信小程序开发成语消消乐游戏视频课程 中国实战派HTML5培训第一人,微软技术讲师,曾任百合网技术总监,博看文思HTML5总监.陶国荣长期致力于HTML5.JavaScript.CSS3 ...

  5. 老司机讲前端之微信小程序开发成语消消乐游戏视频课程-陶国荣-专题视频课程...

    老司机讲前端之微信小程序开发成语消消乐游戏视频课程-102人已学习 课程介绍         本课通过一个完整.真实的游戏项目,带着学员手动开发代码,本课分项目介绍.界面效果.技术分析.代码实现.打包 ...

  6. Java生鲜电商平台-商品中心的架构设计与源码解析(小程序/APP)

    Java生鲜电商平台-商品中心的架构设计与源码解析(小程序/APP) 说明:Java生鲜电商平台中,由于商品的架构很大程度决定了电商的扩展性与伸缩性.对此根据自己多年的生鲜电商经验,整理了以下的商品中 ...

  7. android简单小程序学成语,分享3个成语游戏小程序,让你学习游戏两不误

    原标题:分享3个成语游戏小程序,让你学习游戏两不误 1.杜甫教成语 杜甫教成语,一个轻松简单的学成语小程序,是一个猜字型的小程序,是一个考验我们的成语词库深度的小程序.杜甫教成语其实是一个既可以玩游戏 ...

  8. 基于微信小程序的大学生心理健康测试设计与实现 .docx

    目录 1 绪论 3 1.1 项目开发背景 3 1.2 项目开发意义 3 1.3 项目主要的内容 4 2 相关技术介绍及系统环境开发条件 5 2.1相关技术介绍 5 2.2系统环境开发条件 6 3 系统 ...

  9. 视频教程-微信小程序快速入门视频课程-微信开发

    微信小程序快速入门视频课程 北京八维研修学院技术工程师,5年大型项目实战开发经验,3年授课经验. 孟宪杰 ¥168.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+技术好课免费看 AP ...

最新文章

  1. 小米和西工大联手,三篇论文被Interspeech接收
  2. 七日Python之路--第八天
  3. python的子子孙孙(变种编程语言)
  4. java excel 导入 加校验_POI实现excel各种验证和导入的思路总结
  5. .net core下的dotnet全局工具
  6. cocos2d0基础篇笔记二
  7. FZU 2082 过路费(树链剖分 边权)题解
  8. vue基础之路由(概念,基本使用,路由规则中定义参数,路由的嵌套,使用路由进行经典布局)
  9. 基于微信小程序的小区防疫监管小程序-计算机毕业设计源码+LW文档
  10. leadbbs移花接木漏洞与加入黑客木马
  11. 【DSP】频谱泄露与栅栏效应简介
  12. 基础资料表:行政区划、车型库、行业类别 可下载
  13. win10找不到wifi网络_笔记本电脑搜索不到自己家wifi怎么回事?无线网络信号的解决方法...
  14. maven仓库如何加载瀚高数据库JDBC驱动
  15. Smplayer命令行模式下的用法
  16. 记录,Cents 7 更改home和root的中文路径
  17. 截流式合流制设计流量计算_截流式合流制管道系统的设计说明
  18. macos支持exfat吗_在移动硬盘中安装win10和macos双系统
  19. 搜索引擎高级搜索指令
  20. WinRAR实用技巧:一个设置,可能让多文件压缩变得更小!

热门文章

  1. 前端必备的截屏取色小工具推荐——Faststone Capture
  2. 面向对象编程类的内聚性
  3. BlackBerry签名申请与安装介绍
  4. 强烈推荐,阿里开源的11个神级项目
  5. Ripple(瑞波)多重签名
  6. 阿迪达斯健身跟踪器:具备音乐播放列表和跑步路线推荐功能
  7. ECG ×AI: 机器/深度学习的ECG应用入门(4)
  8. 做网站,赚钱未动,兴趣先行
  9. 为什么myisam查询比innodb快?
  10. 移动开发免费收费api及网站收藏