展会信息港展会大全

SQLiteOpenHelper Android管理数据库的工具集
来源:互联网   发布日期:2016-01-19 12:32:54   浏览:1863次  

导读:SQLiteOpenHelper是Android提供的一个管理数据库的工具集,可用于管理数据库的创建和版本更新。用SQLiteOpenHelper写的单词本DEMO1)开发数据库package com example db;import android content Context;import ...

SQLiteOpenHelper是Android提供的一个管理数据库的工具集,可用于管理数据库的创建和版本更新。

用SQLiteOpenHelper写的单词本DEMO

1)开发数据库

package com.example.db;

import android.content.Context;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteDatabase.CursorFactory;

import android.database.sqlite.SQLiteOpenHelper;

import android.util.Log;

public class MyDatabaseHelper extends SQLiteOpenHelper {

final String CREATE_TABLE_SQL = "create table dict(_id integer primary " +

"key autoincrement , word , detail)";

public MyDatabaseHelper(Context context, String name, int version) {

super(context, name, null, version);

}

@Override

public void onCreate(SQLiteDatabase db) {

//第一次使用数据库时自动建表

db.execSQL(CREATE_TABLE_SQL);

}

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

Log.d("XX", "oldVersion=" + oldVersion + ",newVersion" + newVersion);

}

}

2)插入记录的单词的Activity

```java

代码

```package com.example.db;

import java.io.Serializable;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.Map;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

import android.app.Activity;

import android.content.Intent;

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;

public class DictActivity extends Activity {

MyDatabaseHelper dbHelper;

Button insert = null;

Button search = null;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

dbHelper = new MyDatabaseHelper(this, "myDict.db3", 1);

insert = (Button) findViewById(R.id.main_insert);

search = (Button) findViewById(R.id.main_search);

insert.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

//获取用户输入

String word = ((EditText) findViewById(R.id.main_word)).getText().toString();

String detail = ((EditText) findViewById(R.id.main_detail)).getText().toString();

//插入生词记录

insertData(dbHelper.getReadableDatabase(), word, detail);

Toast.makeText(DictActivity.this, "添加生词成功!", 8000).show();

}

});

search.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

//获取用户输入

String key = ((EditText) findViewById(R.id.main_edit2)).getText().toString();

//执行查询

Cursor cursor = dbHelper.getReadableDatabase().rawQuery(

"select * from dict where word like ? or detail like ?",

new String[]{"%" + key + "%", "%" + key + "%" });

//创建一个Bundle对象

Bundle data = new Bundle();

data.putSerializable("data", converCursorToList(cursor));

Intent intent = new Intent(DictActivity.this, ResultActivity.class);

intent.putExtras(data);

startActivity(intent);

}

});

}

protected ArrayList<Map<String, String>> converCursorToList(Cursor cursor) {

ArrayList<Map<String, String>> result = new ArrayList<Map<String,String>>();

//遍历Cursor结果集

while(cursor.moveToNext()){

Map<String, String> map = new HashMap<String, String>();

map.put("word", cursor.getString(1));

map.put("detail", cursor.getString(2));

result.add(map);

}

return result;

}

private void insertData(SQLiteDatabase db, String word, String detail){

db.execSQL("insert into dict values(null , ?, ?)"

, new String[]{word, detail});

}

@Override

protected void onDestroy() {

super.onDestroy();

if(dbHelper != null){

dbHelper.close();

}

}

}

3)显示查找的单词

package com.example.db;

import java.util.List;

import java.util.Map;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.widget.ListView;

import android.widget.SimpleAdapter;

public class ResultActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.result);

ListView listView = (ListView) findViewById(R.id.list);

Intent intent = getIntent();

Bundle data = intent.getExtras();

List<Map<String, String>> list = (List<Map<String, String>>) data.getSerializable("data");

SimpleAdapter adapter = new SimpleAdapter(ResultActivity.this, list, R.layout.line,

new String[]{"word", "detail"}, new int[]{R.id.line_edit1, R.id.line_edit2});

listView.setAdapter(adapter);

}

}

赞助本站

人工智能实验室
AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港