免費論壇 繁體 | 簡體
Sclub交友聊天~加入聊天室當版主
分享
返回列表 回復 發帖

Android – 儲存使用者的偏好設定 [Preference]

原文

通常手機都是屬於個人專用的東西,
像是玩 GAME, 或是登入某個系統中, 所使用的帳號會改變的機會很小,
以 GAME 為例, 倘若每次玩完後要存下記錄, 每次都要輸入一次自己的名字,
這樣看來似乎不太人性化, 所以可以藉由 Preference 來記錄使用者的偏好設定


通常來說, 要記錄使用者的當前的資料, 不外乎是因為需要離開該 Activity
像是遊戲中, 某人傳來簡訊或是來電,
這個動作會迫使遊戲中斷, 倘若程式沒處理被中斷的這個步驟,
我想開發者的耳朵應該不時都會很癢吧…

所以通常記錄使用者當下的資料的時間點, 就是在被中斷的時候
所以通常都是在 onPause() 或是 onStop() 時觸發,
底下為簡易的程式碼

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    restorePrefs();
}

protected void onPause() {
    super.onPause();
    storePrefs();
}

// 將資料由 Preferences 取回
private void restorePrefs() {
    SharedPreferences settings = getSharedPreferences("PREF_DATA", 0);
    String pref_name = settings.getString("NAME", "");
    if(!pref_name.equals("")) {
        mEditText.setText(pref_name);
    }
}

// 將資料存入 Preferences
private void storePrefs() {
    SharedPreferences settings = getSharedPreferences("PREF_DATA", 0);
    settings.edit()
        .putString("NAME", mEditText.getText().toString())
        .commit();
}
返回列表