public class Dictionary extends Activity implements OnClickListener, TextWatcher{
private final String DATABASE_PATH = android.os.Environment
.getExternalStorageDirectory().getAbsolutePath()
+ "/dictionary";
private final String DATABASE_FILENAME = "dictionary.db3";
SQLiteDatabase database;
Button btnSelectWord;
AutoCompleteTextView actvWord;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 打开数据库,database是在Main类中定义的一个SQLiteDatabase类型的变量
database = openDatabase();
// 下面的代码装载了相关组件,并设置了相应的事件
btnSelectWord = (Button) findViewById(R.id.btnSelectWord);
actvWord = (AutoCompleteTextView) findViewById(R.id.actvWord);
btnSelectWord.setOnClickListener(this);
actvWord.addTextChangedListener(this);
}
public void onClick(View view)
{
// 查找单词的SQL语句
String sql = "select chinese from t_words where english=?";
Cursor cursor = database.rawQuery(sql, new String[]
{ actvWord.getText().toString() });
String result = "未找到该单词.";
// 如果查找单词,显示其中文信息
if (cursor.getCount() > 0)
{
// 必须使用moveToFirst方法将记录指针移动到第1条记录的位置
cursor.moveToFirst();
result = cursor.getString(cursor.getColumnIndex("chinese"));
Log.i("tran", "success"+result);
}
// 显示查询结果对话框
new AlertDialog.Builder(this).setTitle("查询结果").setMessage(result)
.setPositiveButton("关闭", null).show();
}
private SQLiteDatabase openDatabase() {
try {
// 获得dictionary.db文件的绝对路径
String databaseFilename = DATABASE_PATH + "/" + DATABASE_FILENAME;
File dir = new File(DATABASE_PATH);
// 如果/sdcard/dictionary目录中存在,创建这个目录
if (!dir.exists())
dir.mkdir();
// 如果在/sdcard/dictionary目录中不存在
// dictionary.db文件,则从res\raw目录中复制这个文件到
// SD卡的目录(/sdcard/dictionary)
if (!(new File(databaseFilename)).exists()) {
// 获得封装dictionary.db文件的InputStream对象
InputStream is = getResources().openRawResource(
R.raw.dictionary);
FileOutputStream fos = new FileOutputStream(databaseFilename);
byte[] buffer = new byte[8192];
int count = 0;
// 开始复制dictionary.db文件
while ((count = is.read(buffer)) > 0) {
fos.write(buffer, 0, count);
}
fos.close();
is.close();
}
// 打开/sdcard/dictionary目录中的dictionary.db文件
SQLiteDatabase database = SQLiteDatabase.openOrCreateDatabase(
databaseFilename, null);
return database;
} catch (Exception e) {
}
return null;
}
@Override
public void afterTextChanged(Editable s) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
}
分享到:
相关推荐
这个项目就是一个关于如何在Android应用中本地读取SQLite数据库(db文件)查询归属地的示例。下面将详细介绍这个过程涉及的关键知识点。 首先,Android系统默认支持SQLite数据库,它是轻量级的关系型数据库,适合于...
- **Android Studio的Device File Explorer**:集成在Android Studio中的一个功能,可以直接浏览设备或模拟器中的文件系统,并下载数据库文件。 2. **导出数据库**: - 使用上述的ADB或Device File Explorer,你...
在Android开发中,读写文件和管理数据库是两个至关重要的任务。SQLite是一个轻量级的、关系型数据库,被广泛应用于移动应用中,因为它能够高效地存储和检索大量数据。以下是对这两个主题的详细讲解: ### 1. ...
而`location`可能指的是数据库文件在设备上的存储位置,比如`/data/data/your_package_name/databases/`,开发者需要确保有合适的权限来读写这个位置。 总的来说,Android软件开发中的第三方数据库集成提供了更高效...
本文将深入探讨如何在Android项目中使用SQLCipher来加密数据库文件。 首先,了解SQLCipher的基本原理。SQLCipher基于SQLite,它通过在数据库操作中添加加密层,确保数据在存储和传输过程中保持安全。SQLCipher使用...
本教程将详述如何在Android应用中读取SQLite数据库的数据并利用ListView进行展示。 首先,我们需要创建SQLite数据库。在Android中,我们通常通过扩展SQLiteOpenHelper类来实现,这个类帮助我们管理数据库的创建和...
- **Android文件操作**:Android提供了多种文件操作方法,包括读写文件、文件流操作等。 - **SD卡操作**:Android允许应用在外部存储(如SD卡)上进行文件操作,但需要注意权限问题。 - **Android视图View和控件**:...
总结来说,"android数据库文件加密"涉及到了使用JNI与C/C++原生库结合,实现SQLite数据库文件的读写加密,以提高数据安全性。通过合理选择加密算法、管理密钥、优化性能以及关注安全性,可以有效地保护用户的隐私...
本教程将围绕“安卓SQLite数据库相关-android读取本地.db文件实现不变数据本地化”这一主题,探讨如何在Android应用中读取和使用本地SQLite数据库文件,以实现数据的本地化存储。 首先,要在Android应用中使用...
这个压缩包文件"Android源码——数据库SQLite.zip"可能包含了关于Android中SQLite数据库的源码分析、使用示例以及相关的图像资源,如1-120912223R80-L.png,可能用于解释或展示SQLite在Android中的工作原理。...
在Android开发中,有时我们需要将预置的数据库文件与应用一起发布,并在应用程序首次启动时将其复制到外部存储(如SD卡)或内部存储(内存)中,以便于后续的操作和使用。这样的需求通常出现在那些需要提供初始数据...
总之,在Android中从`assets`目录读取数据库涉及复制数据库文件、创建数据库帮助器、打开数据库并进行操作等步骤。通过这种方式,我们可以预先加载数据库,提供快速启动体验,或者在不联网的情况下使用预设的数据。...
在安卓(Android)平台上,开发人员经常需要处理数据存储问题,包括将数据库文件保存到外部存储,也就是我们常说的SD卡。本资料“安卓Android源码——数据库文件写入SD卡.zip”提供了一个实例,展示了如何在Android...
在Android应用开发中,将数据库文件写入SD卡是一个常见的需求,特别是在处理大量数据或需要离线存储的情况下。本项目“Android应用源码之数据库文件写入SD卡”是一个很好的学习资源,适合于毕业设计或者对Android...
在Android系统中,文件读写操作是开发过程中常见的任务,涉及到资源文件、数据区文件以及外部存储(如SD卡)的访问。以下是对这些操作的详细说明: 一、资源文件的读取 1. 从resource的raw中读取文件数据: 资源...
总的来说,Android文件上传涉及到文件读取和网络请求,而数据库操作则包括数据库和表的创建、数据的增删改查。理解并熟练运用这些知识,能帮助开发者构建功能完善的Android应用程序。在实际项目中,还应关注错误处理...
本文将详细介绍如何在Android项目中读取存放在`assets`文件夹中的`ini`配置文件。 1. **ini文件格式介绍** `ini`文件是一种轻量级的配置文件格式,主要用于存储键值对数据。通常,每个节(section)以方括号`[]`...
在Android开发中,读写文件和管理数据库是两个至关重要的任务。SQLite数据库是Android系统内置的关系型数据库,常用于存储应用程序的数据。同时,ListView组件则是显示大量数据的标准控件,通常与数据源(如文件或...
在Android应用开发中,SQLite是一个常用的轻量级数据库,它为数据存储提供了便利。然而,随着数据安全性的日益重要,对SQLite数据库进行加密是必要的,以保护敏感信息免受未授权访问。本篇文章将深入探讨如何在...
综上所述,Android读取MySQL数据库数据涉及服务器端的PHP编程、Android的网络请求、JSON解析以及SQLite数据库操作等多个环节。理解并掌握这些知识点,将帮助你成功实现Android应用与远程MySQL数据库的交互。