简单描述一下Android SQLite的使用方法
第一步,创建一个Db类,该类继承字SQLiteOpenHelper,该类中与Activity一样,有一个onCreate方法,会在new的时候执行,我们在这里创建一张名为user的表,代码:
String test = "create table user(" + "_id INTEGER PRIMARY KEY AUTOINCREMENT," + "name TEXT DEFAULT \"\"," + "sex TEXT DEFAULT \"\")";该类会在使用它 的类中创建一张表user
第二步创建Activity,初始化
db = new Db(this); dbReader = db.getReadableDatabase(); dbWriter = db.getWritableDatabase();获得数据库对象并通过该对象获得读写数据库的对象
向数据库写入一条数据
ContentValues cv = new ContentValues(); cv.put("name", nameEditText.getText().toString()); cv.put("sex", sexEditText.getText().toString()); dbWriter.insert("user", null, cv);从数据库读取数据
c = dbReader.query("user", null, null, null, null, null, null);其中c为游标Cursor类,获得数据后把数据塞进SimpleCursorAdapter中:
adapter = new SimpleCursorAdapter(this, R.layout.test_sqlite_item, c, new String[]{"name", "sex"}, new int[]{R.id.name, R.id.sex})package com.example.huanghanqing.testsqlite; import android.annotation.SuppressLint; import android.content.Context; import android.database.DatabaseErrorHandler; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; /** * Created by huanghanqing on 2016/2/16. */ public class Db extends SQLiteOpenHelper { public Db(Context context) { super(context, "db", null, 1); // TODO Auto-generated constructor stub } @SuppressLint("NewApi") public Db(Context context, String name, SQLiteDatabase.CursorFactory factory, int version, DatabaseErrorHandler errorHandler) { super(context, name, factory, version, errorHandler); // TODO Auto-generated constructor stub } @Override public void onCreate(SQLiteDatabase db) { String test = "create table user(" + "_id INTEGER PRIMARY KEY AUTOINCREMENT," + "name TEXT DEFAULT \"\"," + "sex TEXT DEFAULT \"\")"; db.execSQL(test); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }package com.example.huanghanqing.testsqlite; import android.support.v7.app.ActionBarActivity; import android.support.v7.app.ActionBar; import android.support.v4.app.Fragment; import android.support.v4.widget.SimpleCursorAdapter; import android.app.Activity; import android.app.LauncherActivity.ListItem; import android.app.ListActivity; import android.content.ContentValues; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemLongClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.ListView; import android.widget.TextView; import android.os.Build; public class MainActivity extends ListActivity { private Db db; EditText nameEditText; EditText sexEditText; Button add; SQLiteDatabase dbWriter; SQLiteDatabase dbReader; SimpleCursorAdapter adapter; Cursor c; ListView listView; @SuppressWarnings("deprecation") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); db = new Db(this); dbReader = db.getReadableDatabase(); dbWriter = db.getWritableDatabase(); nameEditText = (EditText) findViewById(R.id.editTextName); sexEditText = (EditText) findViewById(R.id.editTextSex); add = (Button) findViewById(R.id.add); //listView = (ListView)findViewById(R.id.listView1); c = dbReader.query("user", null, null, null, null, null, null); adapter = new SimpleCursorAdapter(this, R.layout.test_sqlite_item, c, new String[]{"name", "sex"}, new int[]{R.id.name, R.id.sex}); setListAdapter(adapter); add.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub ContentValues cv = new ContentValues(); cv.put("name", nameEditText.getText().toString()); cv.put("sex", sexEditText.getText().toString()); dbWriter.insert("user", null, cv); refresh(); } }); getListView().setOnItemLongClickListener(new OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub return false; } }); } public void refresh() { c = dbReader.query("user", null, null, null, null, null, null); adapter.changeCursor(c); } }