简单的android有道词典开发

第一次写教程,不好勿怪哈!其实想写这篇教程已经很久了,但却一直没有付诸行动,这个项目是偶然间在论坛里发现的,我算是弄出来整理了一下吧!所以在此要感谢那些前辈们,没有他们,也就没有我们,不过这也要归功于android的开源,好了废话不多说,进入正题。

那些怎么建项目,如何布局的问题在此就不用赘述了,不会的在安卓论坛里面一搜一大把!像安卓巴士以及EOE这样的网站就挺好的。首先介绍一下开发这个软件的思路,说实话,这个软件唯一的优点就是方便,而且软件也不大,20k都不到,实际上说白了也就是有道词典手机网页版的快捷方式而已。不过咱图的就是方便,不是么?额。。。扯远了!咱继续。。。首先在电脑上用浏览器打开有道词典的手机版的网页http://dict.youdao.com/m,然后出现如下界面:

我们先来搜索一个单词吧!比如android,点击查词,页面变为

当然我们最主要的不是看这里,而是看地址栏变成了什么

注意,这个网址待会儿会用到。好了,现在我们开始建项目了,打开eclipse建立一个工程,项目名自拟,类名自拟,当然这里还是以我所建立的工程为例吧!

建立一个名为Youdao的工程,然后在src目录下建一个noon.youdao包,然后再建一个Youdao类,将下列代码复制到里面

package noon.youdao;

import android.app.Activity;

import android.app.AlertDialog;

import android.app.AlertDialog.Builder;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.webkit.WebView;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

public class YouDao extends Activity

{

//查询按钮申明

private Button query,reset;

//输入框申明

private EditText mETinfo;

//加载数据的WebView申明

private WebView mWebView;

//菜单按钮功能

final static int EXIT=1;

final static int ABOUT=EXIT+1;

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

//获得布局的几个控件

query = (Button)findViewById(R.id.query);

reset = (Button) findViewById(R.id.reset);

mETinfo = (EditText) findViewById(R.id.myEditText1);

mWebView = (WebView) findViewById(R.id.myWebView1);

//查询按钮添加事件

query.setOnClickListener(new Button.OnClickListener()

{

public void onClick(View arg0)

{

String strURI = (mETinfo.getText().toString());

strURI = strURI.trim();

//如果查询内容为空提示

if (strURI.length() == 0)

{

Toast.makeText(YouDao.this, "查询内容不能为空!", Toast.LENGTH_LONG)

.show();

}

//否则则以参数的形式从http://dict.youdao.com/m取得数据,加载到WebView里.

else

{

String strURL = "http://dict.youdao.com/m/search?keyfrom=dict.mindex&vendor=&q="

+ strURI;

mWebView.loadUrl(strURL);

}

}

});

//清空按钮添加事件,将EditText置空

reset.setOnClickListener(new Button.OnClickListener()

{

public void onClick(View v)

{

mETinfo.setText("");

}

});

}

//添加菜单按钮功能

@Override

public boolean onCreateOptionsMenu(Menu menu) {

menu.add(0,EXIT,1,R.string.exit);

menu.add(0,ABOUT,2,R.string.about);

return super.onCreateOptionsMenu(menu);

}

/* (non-Javadoc)

* @see android.app.Activity#onOptionsItemSelected(android.view.MenuItem)

*/

@Override

public boolean onOptionsItemSelected(MenuItem item) {

switch(item.getItemId()){

case EXIT:finish();

case ABOUT:{

AlertDialog.Builder builder = new Builder(YouDao.this);

builder.setTitle("作者信息");

builder.setPositiveButton("确定", null);

//builder.setIcon(android.R.drawable.ic_dialog_info);

builder.setMessage("MADE BY NOON\n2013.4.21");

builder.show();

}

}

return super.onOptionsItemSelected(item);

}

}

这里所要用到的是刚才在浏览器那儿显示的地址,后面加上的是所要搜索的字符串。

在布局文件main.xml里面,实际上只用到了四个控件而已

<?xml version="1.0" encoding="utf-8"?>

<AbsoluteLayout

xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:background="@color/gainsboro"

>

<!-- 建立一個EditText -->

<EditText

android:id="@+id/myEditText1"

android:layout_width="200px"

android:layout_height="40px"

android:textSize="18sp"

android:layout_x="5px"

android:layout_y="32px"

/>

<!-- 建立一個Button -->

<Button

android:id="@+id/query"

android:layout_width="60px"

android:layout_height="40px"

android:text="@string/chaxun"

android:layout_x="205px"

android:layout_y="35px"

/>

<Button

android:id="@+id/reset"

android:layout_height="40px"

android:layout_width="50px"

android:text="@string/qingkong"

android:layout_y="35px"

android:layout_x="270px"

/>

<!-- 建立一個WebView -->

<WebView

android:id="@+id/myWebView1"

android:layout_height="330px"

android:layout_width="300px"

android:layout_x="7px"

android:layout_y="90px"

android:focusable="false"

/>

</AbsoluteLayout>

最主要的是在AndroidManifest.xml里面添加一个网络权限,如果不添加,程序会报错的

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

Sting.xml里面的内容如下

<?xml version="1.0" encoding="utf-8"?>

<resources>

<string name="hello">Hello World, Main!</string>

<string name="app_name">NOON词典</string>

<string name="chaxun">查询</string>

<string name="qingkong">清空</string>

<string name="exit">退出</string>

<string name="about">关于</string>

</resources>

还有在values目录下建一个color.xml文件

<?xml version="1.0" encoding="utf-8"?>

<resources>

<color name="gainsboro">#DCDCDC</color><!--淡灰色 -->

</resources>

代码大概也就这些,是不是非常的简单啊!所以感觉安卓无比的强大,只要有心,一定会学有所成的,最后附上软件的截图,界面比较简洁,你们也可以拿去完善一下

第一次写教程,写得不好还请大家见谅啊!

android简单的有道词典开发相关推荐

  1. Android进阶2之有道词典开发

    本博文只是实现有道词典的功能,并着重界面. 首先,你需要获取有道开发平台的API key.点击打开链接 申请一个吧. 利用数据接口获取数据: http://fanyi.youdao.com/opena ...

  2. android学习-有道词典开发实例

    最近学习android程序开发,在网看上到一个关于android手机开发有道词典的例子.但是,并不能正常运行,现在个人改进版本源代码和思路献上之供学习之用. 第一步,申请API key,申请地址:ht ...

  3. Android有道词典开发

    第一步,申请API key,申请地址:http://fanyi.youdao.com/openapi?path=data-mode 数据接口: http://fanyi.youdao.com/open ...

  4. 使用Android简单实现有道电子词典

    前言: 毕业设计的内容,仅仅有Java基础.没学过Android. 本着用到什么学什么.花费了10多个晚上完毕毕业设计. 当然,仅仅是简单的实线了电子词典功能,自始至终没有考虑过性能等问题. 本电子词 ...

  5. 有道词典之父:曾梦想执笔去教书,却转岗当上CEO

    周枫分别于2000年和2002年在清华大学获得计算机学士和硕士学位,2007年于加州大学伯克利分校获得博士学位,主要研究兴趣是面向大规模服务的软件基础设施.操作系统和编程语言. 现任网易高级副总裁,网 ...

  6. android有道词典简单开发

    Android剪切板(ClipBoardManager)复制的内容,可以粘贴到任何地方,对于一些词典,翻译工具等app具有较高的使用价值.有道词典在3.6版本后就使用到该功能,本文来剖析具体的实现过程 ...

  7. 有道词典Android客户端包体积优化之路

    1 背景 有道词典从移动互联网之初就凭借小巧快速.功能强大的印象让用户爱上翻译查词,爱上学习.随着业务不断地迭代以及功能不断完善,有道词典不再是单纯的查词软件,而是变成了用户的综合学习平台.我们探索过 ...

  8. Android复制查词功能,有道词典Android 3.6版发布 新增“复制查词”功能

    有道词典Android 3.6版发布 新增"复制查词"功能 2013-03-06 13:40:43  来源:网络 扫码可以: 1.在手机上浏览 2.分享给微信好友或朋友圈 摘要: ...

  9. Android有道词典查询功能

    有道词典 任务要求:完成查词等功能 因为需要申请API key,这里直接给出地址供使用:http://fanyi.youdao.com/openapi?path=data-mode 1.activit ...

最新文章

  1. 下述程序有什么问题?
  2. 美!视差滚动在图片滑块中的应用【附源码下载】
  3. leetcode1070. 产品销售分析 III(SQL)
  4. php discuz 定时计划,为什么discuz这个功能计划任务功能不用事件调度呢?
  5. python3 asyncio_asyncio--python3未来并发编程主流、充满野心的模块
  6. 百度开撕离职前高管:侵犯商业机密索赔 5000 万!
  7. 现代通信原理5.2:带通信号的(复包络)低通表示
  8. 设计检验轧辊的虚拟现实的集成软件
  9. linux实用技巧:ubuntu18.04安装配置ibus中文输入法
  10. 支付宝首次揭秘红包技术
  11. php表格合并_合并表格怎么合并
  12. ROS话题通信c++和python实现
  13. node 热更新代码,无需每次重启命令
  14. 高通 安卓 Uefi 的理解
  15. “隐私—数据收集”问题的两难分析
  16. Unity3d 接入VKSDK登陆和分享 IOS篇
  17. 学生管理系统——PHP
  18. 前后端分离最佳实践:搭建一个复习算法题的网站ReviseCode(一)
  19. Android A/B System OTA分析(四)系统的启动和升级
  20. ROS学习笔记-log日志以及输出工具(rqt_console)

热门文章

  1. windows nao naoqi SDK 配置
  2. java 程序猿必备技能——Debug详解
  3. 短线的高手一般看什么,盯盘需要关注哪些内容
  4. 集客家客运维那些事_集客家客考试题
  5. 老友记台词学习笔记 SE01EP01(七)
  6. WZOI-282二进制加法
  7. ARMCC/GCC下的stack protector
  8. 在unity中,关于HttpWebRequest不能连接https前缀接口的问题
  9. 串口485接法图_终于有人把常用的三种通讯方式:RS485、RS232、RS422讲明白了
  10. Android Studio下载查看Android API的方法