移动学习软件的
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
与实现 [
1
基于 Android平台英语移动学习软件设计
-------------------------济南职业学院张红亮
一. 软件的功能
1. 单词翻译
实现从英文单词翻译到中文,从中文翻译为应为
2. 语音读取
对英文单词进行发音
3. 天气显示
预报天气情况
4. 阅读英语美文
二. 软件的实现原理
Android手机
数
据
库
Web
Service
服务器
Tomca
t
服
务
器
移动学习软件的设计与实现 [
2
三. 软件界面
1. 登陆界面
2. 主菜单界面
移动学习软件的设计与实现 [
3
3. 单词查询语音和天气预报界面
移动学习软件的设计与实现 [
4
四. 代码实现
1. 登陆模块的实现
客户端:
package jnvc.edu.cn.zhl;
//我想心这次一定能够成功的
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
移动学习软件的设计与实现 [
5
public class MainActivity extends Activity {
//实例化界面中的对象 写 longin方法 弹出对话框方法
private EditText edit_text_name;
private EditText edit_text_password;
private Button button_login;
private Button button_cancel;
private TextView tv;
//声明一下MIp类
private MIDIPlayer mi;
//声明要加载的的图像
//声明环境
private Context mContext;
private MediaPlayer mediaplayer;
// public MainActivity(Context context)
// {
// mContext=context; //因为这是 Activity,不能够在写它的构
造方法了
// }
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
edit_text_name=(EditText)findViewById(R.id.editText1);
edit_text_password=(EditText)findViewById(R.id.editText2);
button_login=(Button)findViewById(R.id.button1);
button_cancel=(Button)findViewById(R.id.button2);
tv=(TextView)findViewById(R.id.tv);
//实例化对象
mi=new MIDIPlayer();
mediaplayer=MediaPlayer.create(this, R.raw.kaiguan2);
button_login.setOnClickListener(
new OnClickListener() {
@Override
public void onClick(View v) {
// 获取用户名,密码的值,然后调用 login方法连接网络,
显示对话框
mi.PlayMusic(mediaplayer, false);
String name=edit_text_name.getText().toString();
String password=edit_text_password.getText().toString();
login(name,password);
}
}
移动学习软件的设计与实现 [
6
);
button_cancel.setOnClickListener(
new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
// onDestroy();
mi.PlayMusic(mediaplayer, false);//根本而就没有看出效
果来
// mi.stop(mediaplayer);//是不是不能够放着呢,注释掉
// mi.release(mediaplayer);
MainActivity.this.finish();
}
}
);
}
private void login(String username, String password)//难道一定要用private吗
{
//连接网络,从服务器端获得值,显示出响应的对话框.连接网络的具
体步骤如下
//1. 声明连接的 url字符串
String urlStr="http://222.207.219.217:8080/demo1/User!login.action?";
//传递的值查询的字符串
String
queryString="username="+username+"&"+"password="+password;
urlStr+=queryString;
try {
//建立 URL对象 G gallery
URL url=new URL(urlStr);
//建立 connection对象
HttpURLConnection conn=(HttpURLConnection)url.openConnection();
//判断是否请求成功
if(conn.getResponseCode()==HttpURLConnection.HTTP_OK)
{
//获得输入流
InputStream in=conn.getInputStream();
//数组缓存
byte[] b=new byte[in.available()];
//读取数据到缓存
in.read(b);
String msg=new String(b);
移动学习软件的设计与实现 [
7
System.out.println(msg);
msg.trim();
if("success".equals(msg))
{
//已经执行到这让而了,但是跳转有点问题,所以必须弄弄
跳转,出错原因,没有在 xml文件中配置 NextActivity,这次一定可以了,一定的
Intent intent=new Intent();
intent.setClass(MainActivity.this, Activity01.class);
startActivity(intent);
}
else
{
showDialog("请正确核对你的信息");
}
}
} catch (Exception e) {
// TODO: handle exception
}
}
private void showDialog(String msg) {
// 显示对话框
AlertDialog.Builder buider=new AlertDialog.Builder(this);
buider.setMessage(msg).setCancelable(false).setPositiveButton(" 确 定 ",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
});
AlertDialog alert=buider.create();
alert.show();
}
//应该写一个是否确定退出程序的对话框,然后用户选择了以后才
能够决定是否可以进行退出程序
移动学习软件的设计与实现 [
8
public void ConfirmDestroyDialog()
{
}
服务器端:
代码
目录
工贸企业有限空间作业目录特种设备作业人员作业种类与目录特种设备作业人员目录1类医疗器械目录高值医用耗材参考目录
如下:
移动学习软件的设计与实现 [
9
}
2. 主菜单模块的实现
3. Web service模块的实现
//天气预报代码
tv=(TextView)findViewById(R.id.tv);
//第一步定义url,命名空间,方法,传给参数
HashMap
params = new HashMap();
String url =
"http://webservice.webxml.com.cn/WebServices/WeatherWebService.asmx";
String nameSpace = "http://WebXml.com.cn/";
String methodName = "getWeatherbyCityName";
String Provice="济南";
params.put("theCityName", "济南");
String SOAP_ACTION = nameSpace + methodName;
// 创建SoapObject实例 . \\
SoapObject request = new SoapObject(nameSpace, methodName);
// 生成调用web service方法的soap请求消息
SoapSerializationEnvelope envelope = new
SoapSerializationEnvelope(
SoapEnvelope.VER11);
// 设置.net web service
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
// 请求参数
if (params != null && !params.isEmpty()) {
for (Iterator it = params.entrySet().iterator();
it.hasNext();) {
Map.Entry e = (java.util.Map.Entry) it.next();
request.addProperty(e.getKey().toString(),
e.getValue());
}
}
移动学习软件的设计与实现 [
10
// 在这儿进行用到的的url
AndroidHttpTransport androidHttpTrandsport = new
AndroidHttpTransport(
url);
//定义一个SoapObject对象,用来盛放返回的SoapObject对象
SoapObject result = null;
String aa="";
try {
// web service请求 .
androidHttpTrandsport.call(SOAP_ACTION, envelope);
// 得到返回结果
result = (SoapObject)envelope.getResponse();
tv.setText("成功");
if(result==null)
{tv.setText("连接失败");
}
} catch (Exception ex) {
ex.printStackTrace();
}
for(int i=0;i 0) {
/* 调用google_translate.html里的javascript */
WebView01.loadUrl("javascript:google_translate('"
+ EditText01.getText().toString() + "')");
// 我在想返回的结果是不是放到webview中了,不是的,他把
}
}
移动学习软件的设计与实现 [
11
});
Button02.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
tts.speak("mother",
TextToSpeech.QUEUE_FLUSH, null);
String textview_word = TextView01.getText().toString();
String str = textview_word.substring(0, 1);
//
// /* 传入要说的字符串 */
// tts.speak(TextView01.getText().toString(),
// TextToSpeech.QUEUE_FLUSH, null);
// } else {
// tts.speak("Nothing to say", TextToSpeech.QUEUE_FLUSH,
null);
// }
// 首先判断的是在TextView中的是英文还是中文,是英文则进行语音读
取,如果是中文,则从editeText中进行读取
// if((w>='a'&&w<='z')||(w>='A'&&w<='Z'))
if (TextView01.getText().toString().length() > 0) {
boolean b1 = false;
int a1 = str.compareTo("a");
int a2 = str.compareTo("z");
int a3 = str.compareTo("A");
int a4 = str.compareTo("Z");
if ((a1 >= 0 && a2 <= 0) || (a3 >= 0 && a4 <= 0)) {
b1 = true;
}
if (b1) {
tts.speak(TextView01.getText().toString(),
TextToSpeech.QUEUE_FLUSH, null);
} else {
tts.speak(EditText01.getText().toString(),
TextToSpeech.QUEUE_FLUSH, null);
}
}
}
});
移动学习软件的设计与实现 [
12
移动学习软件的设计与实现 [
13
五. 大赛总结
因为去年学习的知识比较少,很遗憾没有提交作品,为了弥补这个遗憾,
我决定今年参加这次系里的大赛,由于时间原因,这款软件仅仅实现了单词
查询功能,语音读取功能,天气预报显示功能,还有很多模块没有做完,以
后自己去会把剩下的功能实现完成。
学习软件感慨很多,学习软件注定了自己要付出很多,没有付出怎能有
回报。软件开发需要耐心,毅力,要学会有计划,不能够盲目,要有整体意
思。自己发现自己的基础知识并不牢固,以后会通过做软件不断增强。