文章目錄
- 1,採用Shared Preferences:
- 2,採用File:
- 3,採用網路空間:(略)
- 4,採用SQLite資料庫:
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);
《完》