Android學習心得(二)
阿新 • • 發佈:2018-11-25
Android儲存方式
儲存偏好設定
- 持久化資料:使應用程式執行時需要長期儲存一些資料。
- SharePreferences物件、檔案和 SQLite資料庫來儲存這些持久化資料
存取活動的偏好設定
- SharePreferences類屬於Android.cntent包,可以用來儲存少量簡單的應用程式的資料,這些儲存資料類似Bundle物件的鍵值與對應值,支援Boolean、Float、Integer、Long、String型別的資料。
- 取得SharePreferences物件:在oncreate中得到private SharePreferences prefs = getPreference(MODE_PRIVATE);
- 讀取偏好設定資料:String amout = prefs.getString(PREF_AMOUNT,”10000”);
txtAmount.setText(amount); float rate = prefs.getFloat(PREF_RATE,28.9F);(第一個引數鍵值,第二個引數是預設值) txtRate.setText(String.valueOf(rate));
- 儲存偏好設定資料:重寫onpause方法,通過SharePreferences。Editor物件來編輯存入的資料,SharePreferences.Editor prefEdit = prefs.edit(); 然後使用putString()、putInt()、putFloat()等方法存入字串、整數、浮點型OUNT,txtAmount.getText().toString());
Float rate;
Rate = (float)Doule.parseDouble(
txtRate.getText().toString());
prefEdit.putFloat(PREF_RATE,rate);
- 最後使用prefEdit.commit();將資料寫入偏好設定檔案
關係型資料庫與SQLite
- 使用SQLiteOpenHelper類建立資料庫與資料表
SQLiteOpenHelper類是一個幫助我們訪問SQLite資料庫的幫助類,我們需要繼承此類,通過繼承類來建立SQLite資料表和版本管理,建立的資料庫是一個SQLiteDatabase類的物件。
- 繼承SQLiteOpenHelper類
Android應用程式建立SQlite資料庫就是繼承SQLiteOpenHelper類重寫方法,就是讓我們可以下 SQLite中可以新增新表,我們需要在繼承類中新增構造方法。
super(content物件,資料庫名稱,建立Cursor物件,版本的整數值)
oncreat(建立的SQLiteDatabase資料庫物件)
onupgrade(建立的SQLiteDatabase資料庫物件,int,int)
- SQLiteOpenHelper類的相關方法
方法 |
說明 |
getReadableDatabase() |
建立或開啟一個只讀資料庫,成功開啟返回SQLiteDatebase物件 |
GetWriteDatebbase() |
建立或開啟一個可讀寫資料庫,成功開啟返回SQLiteDatebase物件 |
Close() |
關閉開啟的資料庫 |
使用SQLiteDatabase類訪問資料表的記錄資料
- 開啟可讀資料庫
DBHelper = new MyDBHelper(this);
Db = dbHelper.getWritetableDatabase();
- 關閉資料庫
通常在onstop中通過SqlLitedatabase類的close方法關閉資料庫
- 新增記錄
SQLLiteDatabase物件通過Insert()方法來新增記錄
Long id;
ContentValue cv = new ContentValues();
Cv.put(“title”,txttitle.getText().toString());
Double price = Double.parseDouble(txtprice.getText().toString());
cv.put(“price”,price);
id = db.insert(“資料表名稱,null,ContentValues物件”);
- 更新資料
SQLLiteDatabase物件通過Insert()方法來新增記錄
Long id;
ContentValue cv = new ContentValues();
Cv.put(“title”,txttitle.getText().toString());
Double price = Double.parseDouble(txtprice.getText().toString());
cv.put(“price”,price);
id = db.insert(“資料表名稱,null,ContentValues物件”);
- SQLLiteDatabase物件可以使用delete()方法刪除記錄,
Content = db.delete(DATABASE_TABLE,”title=’”+title+”’”,null);
(資料表的名稱,where子句的刪除條件,如果是引數條件字串,其引數值就是最後一個引數。)
- 查詢資料
SQLiteDatabase物件可以使用query()方法來記錄
Cursor c = db.query(DATABASE_TABLE,colNames,null,null,null,null,null);
Query的引數有八個
編號: |
引數物件: |
說明: |
1 |
資料表 |
查詢資料表的名稱 |
2 |
欄位 |
欄位列表的陣列 |
3 |
篩選條件 |
記錄篩選條件,即where語句 |
4 |
引數篩選條件 |
|
5 |
分組 |
分組紀錄 |
6 |
分組篩選 |
設定分組篩選條件 |
7 |
排序條件 |
設定排序欄位 |
8 |
限制的記錄數 |
只返回限制的記錄數 |