调用有道词典查词

调用有道词典

DbHelper类进行数据操作,activity_mian.xml布局页面,MainAvtivity类实现继承与查询等操作。
MainAvtivity.java:

 1 package com.example.happydictionary;
 2
 3 import android.app.Activity;
 4 import android.os.Bundle;
 5 import android.text.TextUtils;
 6 import android.view.Menu;
 7 import android.view.View;
 8 import android.widget.EditText;
 9 import android.widget.TextView;
10
11 import com.example.happydictionary.dao.WordDao;
12
13 public class MainActivity extends Activity {
14     private WordDao wordDao;
15     private EditText etWord;
16     private TextView tvResult;
17
18     @Override
19     protected void onCreate(Bundle savedInstanceState) {
20         super.onCreate(savedInstanceState);
21         setContentView(R.layout.activity_main);
22
23         initViews();
24     }
25
26     private void initViews() {
27         etWord = (EditText) findViewById(R.id.etWord);
28         tvResult = (TextView) findViewById(R.id.tvSearchResult);
29     }
30
31     @Override
32     public boolean onCreateOptionsMenu(Menu menu) {
33         // Inflate the menu; this adds items to the action bar if it is present.
34         getMenuInflater().inflate(R.menu.main, menu);
35         return true;
36     }
37
38     public void searchWord(View view) {
39         String english = etWord.getText().toString();
40         wordDao = new WordDao(this);
41         if (TextUtils.isEmpty(english)) {
42             tvResult.setText("请输入您想查询的单词");
43         } else {
44             String chinese = wordDao.getChinese(english);
45             tvResult.setText(chinese);
46         }
47     }
48
49 }  

activity_mian.xml:

 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:background="@drawable/mainbg"
 6     android:paddingBottom="@dimen/activity_vertical_margin"
 7     android:paddingLeft="@dimen/activity_horizontal_margin"
 8     android:paddingRight="@dimen/activity_horizontal_margin"
 9     android:paddingTop="@dimen/activity_vertical_margin"
10     tools:context=".MainActivity" >
11
12     <EditText
13         android:id="@+id/etWord"
14         android:layout_width="wrap_content"
15         android:layout_height="wrap_content"
16         android:layout_alignParentLeft="true"
17         android:layout_alignParentTop="true"
18         android:layout_marginTop="31dp"
19         android:ems="10"
20         android:hint="@string/searchHint"
21         android:singleLine="true"
22         android:textColor="#552006"
23         android:textColorHint="#782f10" >
24
25         <requestFocus />
26     </EditText>
27
28     <Button
29         android:id="@+id/btnSearch"
30         android:layout_width="wrap_content"
31         android:layout_height="wrap_content"
32         android:layout_alignBaseline="@+id/etWord"
33         android:layout_alignBottom="@+id/etWord"
34         android:layout_marginLeft="16dp"
35         android:layout_toRightOf="@+id/etWord"
36         android:background="@drawable/ibsearchword"
37         android:onClick="searchWord"
38         android:text="@string/serachWord" />
39
40     <TextView
41         android:id="@+id/tvSearchResult"
42         android:layout_width="match_parent"
43         android:layout_height="match_parent"
44         android:layout_alignLeft="@+id/etWord"
45         android:layout_below="@+id/etWord"
46         android:layout_marginTop="22dp"
47         android:textSize="25sp"
48         android:textAppearance="?android:attr/textAppearanceMedium" />
49
50 </RelativeLayout>  

DbHelper类:

 1 import java.io.File;
 2 import java.io.FileNotFoundException;
 3 import java.io.FileOutputStream;
 4 import java.io.IOException;
 5 import java.io.InputStream;
 6
 7 import com.example.happydictionary.R;
 8 import com.example.happydictionary.R.raw;
 9
10 import android.content.Context;
11 import android.database.sqlite.SQLiteDatabase;
12 import android.os.Environment;
13 import android.util.Log;
14 public class DBHelper {
15 private final int BUFFER_SIZE = 400000;
16 public static final String DB_NAME = “idiom.db”;
17 public static final String PACKAGE_NAME = “com.example.happydictionary”;
18 public static final String DB_PATH = “/data”
19 + Environment.getDataDirectory().getAbsolutePath() + “/”
20 + PACKAGE_NAME + “/databases”;
21 private Context context;
22
23 public DBHelper(Context context) {
24     this.context = context;
25 }
26
27 public SQLiteDatabase openDatabase() {
28     try {
29         File myDataPath = new File(DB_PATH);
30         if (!myDataPath.exists()) {
31             myDataPath.mkdirs();
32         }
33         String dbfile = myDataPath + "/" + DB_NAME;
34         if (!(new File(dbfile).exists())) {
35             InputStream is = context.getResources().openRawResource(
36                     R.raw.dictionary);
37             FileOutputStream fos = new FileOutputStream(dbfile);
38             byte[] buffer = new byte[BUFFER_SIZE];
39             int count = 0;
40             while ((count = is.read(buffer)) > 0) {
41                 fos.write(buffer, 0, count);
42             }
43             fos.close();
44             is.close();
45         }
46         SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(dbfile,
47                 null);
48         return db;
49     } catch (FileNotFoundException e) {
50         Log.e("Database", "File not found");
51         e.printStackTrace();
52     } catch (IOException e) {
53         Log.e("Database", "IO exception");
54         e.printStackTrace();
55     }
56     return null;
57 }  
时间: 2024-10-13 11:39:27

调用有道词典查词的相关文章

android/java调用有道词典

之前学的时候碰了两壁:1.android4.0以上不能在主线程使用网络,2.不能在线程更新UI状态 因为网上很多给出的代码都有这两个隐患,所以很多人都调用不成功.明白了这两点下面就好办了. PS:代码非原创,由网络上android4.0以下的低版本代码改进而来,适用于android4.0以上,当然之前的应该也适用 直接上demo---translate http://pan.baidu.com/s/1gdIK4QR android/java调用有道词典

ubuntu下python脚本调用有道词典API实现命令行查词

#!/usr/bin/env python #coding=utf-8 '''   python使用有道词典的API来实现命令行查词 ''' import urllib2 import json import sys  reload(sys) sys.setdefaultencoding('utf-8') key = '1096888977' keyfrom = 'bloketest' doctype = 'json' u = 'http://fanyi.youdao.com/openapi.d

WebView调用有道词典实如今线查词

    WebView(网络视图)能载入显示网页,能够将其视为一个浏览器.它使用了WebKit渲染引擎载入显示网页,用法非常easy,直接在XML文件里写入webview控件就可以,主要代码例如以下: <AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_heigh

WebView调用有道词典实现在线查词

    WebView(网络视图)能加载显示网页,可以将其视为一个浏览器.它使用了WebKit渲染引擎加载显示网页,使用方法很简单,直接在XML文件中写入webview控件即可,主要代码如下: <AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height=&q

调用有道词典查询单词

package com.example.happydictionary; import android.app.Activity; import android.os.Bundle; import android.text.TextUtils; import android.view.Menu; import android.view.View; import android.widget.EditText; import android.widget.TextView; import com.

必应词典桌面版 --- 基于大学生用户群体的软件评测与分析(与有道词典对比版 2 体验篇)

2.2体验 本篇评测的体验指使用词典时用户对整款软件的整体感受.评测包括各功能是否初次使用易学.长期使用好用,产品界面是否友好美观,与用户交互是否简单直观.良好体验的目的是将功能更完美的发挥出来,是功能的“外衣”,因此相对功能的总分100分,我们给体验的总分是50分. 2.2.1核心功能单词释义的使用 词典软件的功能简单明了,而必应词典也没有将这一简单的功能做的太过复杂. 必应词典主界面 用户只需在上方的单词栏输入单词即会显示相应的单词释义,简单明确,功能实现的很棒. 但是我们在使用过程中还是发

Python爬虫实践 —— 3.利用爬虫提取返回值,模拟有道词典接口

有道词典的web接口,实际上可以用爬虫模拟,输入key,拼接为有道词典接口的formdata,爬取返回值,实际为Ajax动态生成的translation,这样外部来看实现了翻译接口的模拟,相当于爬虫模拟浏览器调用了有道词典web接口,其实讲真的话来说,直接调用有道web接口,传json参数就可以了,不用这么费事,但爬虫模拟了人登陆web,输入关键词,获得翻译结果的过程. 浏览器输入操作,解析有道词典翻译的web接口url和格式 #爬虫模拟调用有道词典web接口调用 from urllib imp

调用网易有道词典api

# -*- coding: utf-8 -*- #python 27 #xiaodeng #调用网易有道词典api import urllib import json class Youdao(): def __init__(self,word): self.url='http://fanyi.youdao.com/openapi.do' #url.key.keyfrom都是固定的值,所以采用这种方式赋值 self.key='929705525' self.keyfrom='pythonxiao

Java和Python使用有道词典制作查单词脚本

Java和Python使用有道词典制作查单词脚本 先上两张图看一下效果 Java的: Python的: 今天突发奇想,想做个查单词的东西,就赶紧去有道词典官网看了一下,原来我们要查询的单词是嵌入在网页地址中送给有道词典的,然后页面的结果就是我们需要的单词释义,所以这个东西需要的技术知识只有: 正则表达式 我们要做的只是从获取到的网页源码中提取处单词释义,所以这里只说提取单词释义的正则表达式. 分析网页源码,我们可以看到,单词释义都在一个div标签内,如图: 首要目标是获取这一部分,正则表达式可以