Android 小程序APP成语字典课程设计
内容及要求:
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 题目要求
简单成语字典
理解和熟悉成语字典的功能以及怎么实现其主要功能的。主要实现界面布局、新建、修改、删除成语的功能。
设计一个成语字典的APP,要求此APP能够在手机上准确显示成语的释义,并且能正确跳转。
设计主要的页面布局。
实现成语字典中添加成语的功能,删除成语的功能。
再打开此APP 后,点击退出按钮能够退出此应用程序。
此APP能够在电脑上实现运行,并且此程序能够运行出来。
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>
界面是用来显示输入的成语的,当输入成语后,界面跳转如下图所示:
界面是用来显示此成语相关信息(拼音、释义、引申、出处、同义、反义)的,当点击开始查询后,界面跳转如下图所示:
4.如果输入的不是成语或输入为空时,点击开始查询不会发生跳转。
1.2 功能模块设计2
在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) {//handler加Thread组成异步线程访问网络 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 模拟器等工具实现了成语词典的开发,在开发的过程中出现了一系列的问题,但我都虚心请教了同学,进行了一系列的改正。比如:
在第一次运行时出现了输入成语,但是没有释义出现的问题,经过检查发现没有引入网站接口,在同学的相关指导下,从聚合数据中引入了“String url= "http://v.juhe.cn/chengyu/query?key="+ WORD_KEY+"&word="+edit_result;”用于实现输入成语后开始查询的一个接口;
在验证时,由于导入包的方法错误,导致程序出现问题,但在上网查询了相关的百度经验后,又询问了同学,解决了这一问题。
在讲解的时候也出现了一些问题,比如:
在老师问返回格式是一个JSON 类型的还是一个文本的时候,我说了是文本的,实际上返回的是一个JSON 类型的;
第一次给老师检查的时候代码只能实现成语的释义的实现,第二次添加了新的代码,可以对成语实现查询此成语的释义、出处、引申、引申释义、近义词、反义词的实现。
参考文献
来自聚合数据:https://www.juhe.cn/docs
来自网址:http://Android.Googlesource.com
来自网址:http://hukai.me
来自网址:https://zhidao.baidu.com
来自网址:http://m.csdn.net/
来自网址:http://jingyan.baidu.com
Android 小程序APP成语字典课程设计相关推荐
- Android小程序-乐学成语游戏(四)
目标效果: 游戏页面有几个小游戏,因为时间原因只做了第一个猜成语,是用的选择题方式,十道题以内答对六题算闯关成功. 1.新建GameActivity.java页面和activity_game ...
- Android小程序-乐学成语背景音乐(五)
目标效果: 第五个帮助页面改为设置页面,添加switch控件,播放背景音乐. 1.创建SetActivity.java页面和activity_set.xml页面,activity_set.xml页面放 ...
- Android安卓的家教平台设计小程序app毕业设计
Android安卓的家教平台设计小程序app毕业设计
- 视频教程-老司机讲前端之微信小程序开发成语消消乐游戏视频课程-微信开发
老司机讲前端之微信小程序开发成语消消乐游戏视频课程 中国实战派HTML5培训第一人,微软技术讲师,曾任百合网技术总监,博看文思HTML5总监.陶国荣长期致力于HTML5.JavaScript.CSS3 ...
- 老司机讲前端之微信小程序开发成语消消乐游戏视频课程-陶国荣-专题视频课程...
老司机讲前端之微信小程序开发成语消消乐游戏视频课程-102人已学习 课程介绍 本课通过一个完整.真实的游戏项目,带着学员手动开发代码,本课分项目介绍.界面效果.技术分析.代码实现.打包 ...
- Java生鲜电商平台-商品中心的架构设计与源码解析(小程序/APP)
Java生鲜电商平台-商品中心的架构设计与源码解析(小程序/APP) 说明:Java生鲜电商平台中,由于商品的架构很大程度决定了电商的扩展性与伸缩性.对此根据自己多年的生鲜电商经验,整理了以下的商品中 ...
- android简单小程序学成语,分享3个成语游戏小程序,让你学习游戏两不误
原标题:分享3个成语游戏小程序,让你学习游戏两不误 1.杜甫教成语 杜甫教成语,一个轻松简单的学成语小程序,是一个猜字型的小程序,是一个考验我们的成语词库深度的小程序.杜甫教成语其实是一个既可以玩游戏 ...
- 基于微信小程序的大学生心理健康测试设计与实现 .docx
目录 1 绪论 3 1.1 项目开发背景 3 1.2 项目开发意义 3 1.3 项目主要的内容 4 2 相关技术介绍及系统环境开发条件 5 2.1相关技术介绍 5 2.2系统环境开发条件 6 3 系统 ...
- 视频教程-微信小程序快速入门视频课程-微信开发
微信小程序快速入门视频课程 北京八维研修学院技术工程师,5年大型项目实战开发经验,3年授课经验. 孟宪杰 ¥168.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+技术好课免费看 AP ...
最新文章
- 小米和西工大联手,三篇论文被Interspeech接收
- 七日Python之路--第八天
- python的子子孙孙(变种编程语言)
- java excel 导入 加校验_POI实现excel各种验证和导入的思路总结
- .net core下的dotnet全局工具
- cocos2d0基础篇笔记二
- FZU 2082 过路费(树链剖分 边权)题解
- vue基础之路由(概念,基本使用,路由规则中定义参数,路由的嵌套,使用路由进行经典布局)
- 基于微信小程序的小区防疫监管小程序-计算机毕业设计源码+LW文档
- leadbbs移花接木漏洞与加入黑客木马
- 【DSP】频谱泄露与栅栏效应简介
- 基础资料表:行政区划、车型库、行业类别 可下载
- win10找不到wifi网络_笔记本电脑搜索不到自己家wifi怎么回事?无线网络信号的解决方法...
- maven仓库如何加载瀚高数据库JDBC驱动
- Smplayer命令行模式下的用法
- 记录,Cents 7 更改home和root的中文路径
- 截流式合流制设计流量计算_截流式合流制管道系统的设计说明
- macos支持exfat吗_在移动硬盘中安装win10和macos双系统
- 搜索引擎高级搜索指令
- WinRAR实用技巧:一个设置,可能让多文件压缩变得更小!