2012年9月26日 星期三

偏好設定

記錄練習 Android 的偏好設定章節,
因為書中有三種寫法,
在上網查詢後發現內地的開發者常用第一種,
而我較偏好第二種方式,
第三種是另開一個頁面供偏好設定的視覺化選擇。

這裡記錄我常用的方法,
流程是:
  1. 先新增一個專門處理偏好設定的類別(在 /src 之下)
  2. 然後寫入偏好設定的處理「方法」,「寫入值給偏好設定」及「從偏好設定取得值」。
  3. 在想記錄下設定的類別中執行寫入及讀取的動作。寫入的時機點看是按下按鈕觸發、還是達到什麼條件滿足時進行;讀取的時機和寫入一樣。

下面是寫在處理偏好設定的類別之中。
(假設這個類別名稱是 PrefSetting)
寫入偏好設定:
//寫入偏好設定
public static void setEditTextNum1(Context context, String EditTextNum1) {
    SharedPreferences num1 = PreferenceManager.getDefaultSharedPreferences(context);
    Editor editor = num1.edit();
    editor.putString("Num1",EditTextNum1)
          .commit();
    return;
}

既然有寫入當然也要讀取,
讀取偏好設定:
//讀取偏好設定
public static String getEditTextNum1(Context context) {
    SharedPreferences Num1 = PreferenceManager.getDefaultSharedPreferences(context);
    return Num1.getString("Num1", "");
}


至於主程式要怎麼呼叫寫入偏好設定的值呢?
以按下按鈕為例:
private void btnSavesetOnClickListener() {
    btn_Save.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            PrefSetting.setEditTextNum1(this, Num1);
        }
    });
}

假設用按鈕讀取數值偏好設定的數值:
private void btnSavesetOnClickListener() {
    btn_Save.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
        }
    });
}

沒有留言:

張貼留言