android数据库 Android自带数据库SQLite 操作 一步一步 图示教程
16lz
2022-04-27
开发过程中使用Android自带的数据库,不仅安全性较好,而且数据存取的效果也较好。
附源代码
http://download.csdn.net/detail/wyx100/8670843
开发规划
主界面
完成数据的输入,触发保存
启动后界面
输入数据
数据显示界面
数据库读取数据后显示
删除记录
开发顺序
主界面
类代码
package com.example.sqlitetest;import android.os.Bundle;import android.app.Activity;import android.content.ContentValues;import android.content.Intent;import android.view.View;import android.widget.Button;import android.widget.EditText;public class ActivityMain_1 extends Activity {//声明EditText实例private EditText et1,et2,et3;//声明Button实例private Button button;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.main_1);//根据ID获得实例对象et1 = (EditText) findViewById(R.id.EditText01);et2 = (EditText) findViewById(R.id.EditText02);et3 = (EditText) findViewById(R.id.EditText03);button = (Button) findViewById(R.id.button);//事件button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {String name=et1.getText().toString();String url =et2.getText().toString();String desc = et3.getText().toString();ContentValues values = new ContentValues();values.put("name", name);values.put("url", url);values.put("desc", desc);//实例化数据库帮助类DBHelper helper = new DBHelper(getApplicationContext());//打开数据库helper.open(); //插入数据helper.insert(values);//实例化IntentIntent intent = new Intent(ActivityMain_1.this,QueryActivity.class);startActivity(intent);helper.close();}});}}
界面布局
<?xml version="1.0" encoding="UTF-8"?>
2.数据显示界面
类代码
package com.example.sqlitetest;import android.app.AlertDialog;import android.app.ListActivity;import android.content.DialogInterface;import android.database.Cursor;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.ListView;import android.widget.SimpleCursorAdapter;public class QueryActivity extends ListActivity {private ListView listView;private Cursor c; @Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);//setContentView(R.layout.row);//实例化数据库帮助类final DBHelper help = new DBHelper(this);help.open();c= help.query(); query();//提示对话框final AlertDialog.Builder builder = new AlertDialog.Builder(this);listView.setOnItemClickListener(new OnItemClickListener(){@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {final long temp = id;builder.setMessage("真的要删除该条记录吗?").setPositiveButton("是", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {System.out.println("yes");help.del((int)temp);//重新查询//query();Cursor c = help.query();//列表项数组String[] from ={"_id","name","url","desc"};//列表项IDint[] to ={R.id.text0,R.id.text1,R.id.text2,R.id.text3};//适配器SimpleCursorAdapter adapter = new SimpleCursorAdapter(getApplicationContext(),R.layout.row,c,from,to);ListView listView = getListView();listView.setAdapter(adapter);}}).setNegativeButton("否", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stub}});builder.create();builder.show();}});}@Overrideprotected void onStop() {// TODO Auto-generated method stubsuper.onStop();}public void query(){//列表项数组String[] from ={"_id","name","url","desc"};//列表项IDint[] to ={R.id.text0,R.id.text1,R.id.text2,R.id.text3};//适配器SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,R.layout.row,c,from,to);//adapter.notifyDataSetChanged();//列表视图 listView = getListView();//为列表视图添加适配器listView.setAdapter(adapter);}}
界面布局
<?xml version="1.0" encoding="UTF-8"?>
数据库处理类
package com.example.sqlitetest;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;public class DBHelper extends SQLiteOpenHelper {private static final String DB_NAME="coll.db";//定义表名private static final String TBL_NAME="logtable";//建立数据库表SQL语句private static final String CREATE_TBL = "create table logtable " +"(_id integer primary key autoincrement,name text,url text,desc text)";//SQLiteDatabaseprivate SQLiteDatabase db;public DBHelper(Context context) {super(context, DB_NAME, null, 2);}@Overridepublic void onCreate(SQLiteDatabase db) {db.execSQL(CREATE_TBL);}//打开数据库public void open(){db = getWritableDatabase();}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {// TODO Auto-generated method stub}//添加记录public void insert(ContentValues values){db.insert(TBL_NAME, null, values);}//记录查询public Cursor query(){Cursor c = db.query(TBL_NAME, null, null, null, null, null, null);return c;}//删除记录public void del(int id){db.delete(TBL_NAME, "_id=?", new String[]{String.valueOf(id)});}//关闭数据库public void close(){if (db != null){db.close();}}}
启动配置文件
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
更多相关文章
- Android四大组件之Content Provider
- Android(安卓)Studio中使用adb shell查看数据库
- android文本内容自动朗读实例教程
- Android界面布局基本知识简述
- Android期末基础复习
- Android(安卓)Studio使用教程(一)
- Android的SQLite学习及使用方法(1)
- Android的UI设计与后台线程交互
- android中activity的四种加载模式