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);
《完》
※※※※※※※※※※※※※※--我的程序人生--※※※※※※※※※※※※※※