幸运星空

Lucker的程序人生

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

1,采用Shared Preferences:

一句话实现保存Android应用程序配置信息:

保存:getPreferences(Activity.MODE_PRIVATE).edit().putString(strKey,strValue).commit();

读取:strValue=getPreferences(Activity.MODE_PRIVATE).getString(strKey,strDefault);

注:应用内不同Activity之间的配置数据共享使用getSharedPreferences()。

2,采用File:

Files 数据存储主要是使用 Properties 并配合 FileInputStream或者FileOutputStream对文件写入操作。

保存:

FileOutputStream stream=this.openFileOutput(FileName, Context.MODE_PRIVATE);

new Properties().put(strKey,strValue).store(stream, "");

读取:

FileInputStream stream =this.openFileInput(FileName);

strValue=String.valueOf(new Properties().load(stream).getProperty(strKey));

注:采用 Properties的setProperty()方法,可以将键值对打包,最后调用storeXXX方法写入文件。

3,采用网络空间:(略)

4,采用SQLite数据库:

A,SQLite预备知识:

默认数据库路径:data/data/myPackage/databases/

打开数据库:sqlite3 dbName

操作:.help 帮助;.table 查看所有表

每一句Sql语句结束都需要分号;

B,JDBC驱动程序:

Class.forName("org.sqlite.JDBC");

Connection conn = DriverManager.getConnection("jdbc:sqlite:filename"); //filename为你的SQLite数据名称

C,使用SQLiteOpenHelper操作数据库:

获得数据库实例:

getReadableDatabase()获得可读的SQLiteDatabase

getWritableDatabase() 获得可写的SQLiteDatabase

SQLiteOpenHelper子类中需要重写的常用事件:

onCreate(SQLiteDatabase)

onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion)

onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)

封装的DBHelp类,实现对数据库的操作:

public class DBHelp extends SQLiteOpenHelper {

public DBHelp(Context context, String name, CursorFactory factory,

int version) {

super(context, name, factory, version);

}

@Override

public void onCreate(SQLiteDatabase db) {

db.execSQL(createTableSQL); // 执行SQL 需要使用execSQL()

@Override

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

@Override

public void onOpen(SQLiteDatabase db) {

InsertData()

UpdateData()

DeleteData()

rawQuery()

query()

创建并打开数据库:

SQLiteDatabase db = new DBHelp(SQLiteActivity.this).getReadableDatabase();

添加数据:

DBHelp dbHelp = new DBHelp(SQLiteActivity.this);

SQLiteDatabase db = dbHelp.getWritableDatabase();

ContentValues contentValues = new ContentValues();

contentValues.put("sName", txtName.getText().toString());

contentValues.put("sSex", "");

dbHelp.InsertData(db, contentValues)

修改数据:

DBHelp dbHelp = new DBHelp(SQLiteActivity.this);

SQLiteDatabase db = dbHelp.getWritableDatabase();

ContentValues contentValues = new ContentValues();

contentValues.put("sName", txtsName.getText().toString());

String whereClause = "sid=?"; //要修改数据的条件 值用?占位符

String[] whereArgs = new String[]{txtsID.getText().toString()};

dbHelp.UpdateData(db, contentValues, whereClause, whereArgs)

删除数据:

DBHelp dbHelp = new DBHelp(SQLiteActivity.this);

SQLiteDatabase db = dbHelp.getWritableDatabase();

String whereClause = "sid=?"; //要删除数据的条件 值用?占位符

String[] whereArgs = new String[]{txtID.getText().toString()};

dbHelp.DeleteData(db, whereClause, whereArgs)

查询数据:

Cursor cur =db.rawQuery(“SELECT * FROM Student WHERE sid=1 AND sname=‘zhangsan'", null);

Cursor cur =db.rawQuery(...)

每一个rawQuery()query()都会返回一个SQLite数据库Cursor

操作游标:

通过使用 getCount() 方法得到结果集中有多少记录;

通过 moveToFirst(), moveToNext(), isAfterLast() 方法遍历所有记录;

通过 getColumnNames() 得到字段名;

通过 getColumnIndex() 转换成字段号;

通过 getString()getInt() 等方法得到给定字段当前记录的值;

通过 requery() 方法重新执行查询得到游标;

通过 close() 方法释放游标资源;

SimpleCursorAdapter:和游标关联,绑定到ListView以呈现数据,前提条件,表中有_id列,并且是主键。

SimpleCursorAdapter simple = new SimpleCursorAdapter(SQLiteActivity.this, android.R.layout.simple_list_item_1, cur, new String[]{"sName","sSex"}, new int[]{android.R.id.text1,android.R.id.text2});

studentList.setAdapter(simple);

_id不是主键时,先从游标是把数据取出来,然后采用SimpleAdapter来呈现数据:

ArrayList<HashMap<String, Object>> students = new ArrayList<HashMap<String,Object>>();

HashMap<String, Object> hs ;

for (cur.moveToFirst();!cur.isAfterLast();cur.moveToNext()) {

hs = new HashMap<String, Object>();

hs.put("sID", cur.getInt(cur.getColumnIndex("sid")));

hs.put("sName", cur.getString(cur.getColumnIndex("sName")));

hs.put("sSex", cur.getString(cur.getColumnIndex("sSex")));

students.add(hs);

}

SimpleAdapter sim = new SimpleAdapter(SQLiteActivity.this, students, android.R.layout.simple_list_item_1, new String[]{"sName","sSex"}, new int[]{android.R.id.text1,android.R.id.text2});

studentList.setAdapter(sim);

 

 《完》

posted on 2011-12-28 16:25  Lucker  阅读(659)  评论(0编辑  收藏  举报