英文词典, 以AutoCompleteTextView输入内容到SQLite数据库查找匹配的单词

前端之家收集整理的这篇文章主要介绍了英文词典, 以AutoCompleteTextView输入内容到SQLite数据库查找匹配的单词前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

本示例实现一个英文词典,核心部分就是打开数据库查询单词,通过openDatabase()方法来实现,另外openDatabase()方法还实现从res\raw目录复制数据库文件到/sdcard/dictionary目录,复制数据实际上先读取,再写入数据的过程

方法的具体代码如下:

privata sqliteDatabase openDatabase() {

try{

String databaseFilename = DATABASE_PATH + "/" + DATABASE_FILENAME;

// /sdcard/dictionary 目录中没有dictionary.db文件时,将res\raw目录中的数据文件复制到该目录

if(!(new File(databaseFilename).exists())) {

InputStream is = getResources().openRawResource(R.raw.dictionary); //定义读取流

FileOutputStream fos = new FileOutputStream(databaseFilename);

byte[] buffer = new byte[8192];

int count = is.read(buffer);

while(count > 0)

{ fos.write(buffer,count); }

fos.close();

is.close();

}

// 打开数据库

sqliteDatabase database = sqliteDatabaset.openOrCreateDatabase(databaseFilename,null);

return database;

}catch(Exception e){}

return null;

}

要监视AutoCompleteTextView 组件输入字符的变化,在每输入一个字符时就查询当前输入的字符串开头的英文词典,

为了监视AutoCompleteTextView输入,需要实现TextWatcher接口,并在该接口的afterTextChanged() 中编写如下代码:

public void afterTextChanged(Editable s) {

Cursor cursor = database.rawQuery("select english as _id from t_words where english like ?",new String[]{s.toString() + "%"});

DictionaryAdapter dictionaryAdapter = new DictionaryAdapter(this,cursor,true);

actvWord.setAdapter(dictionaryAdapter); }

如图

具体代码请参见 ch06_dictionary 工程

猜你在找的Sqlite相关文章