[Android] Preference Android 2012. 3. 2. 13:50

프리퍼런스는 일종의 환경 설정 파일과 동일한 형태라 생각하면 된다.

우리는 CS 프로그램을 만들다 보면 ini 와 같은 설정용 파일을 만드는데 안드로이드는 다음과 같이 하면 그런 형태를 만들어 낼 수 있다.

package imageview.test;

import android.app.Activity;
import android.app.Service;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.*;
import java.io.*;

public class ImageViewActivity extends Activity{
 TextView v_key, v_value;
 public void onCreate(Bundle savedInstanceState){
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  v_key = (TextView)findViewById(R.id.key);
  v_value = (TextView)findViewById(R.id.value);
  SharedPreferences ref = getSharedPreferences("ImageViewActivity",Service.MODE_PRIVATE);
  String key = ref.getString("key", "3");
  v_key.setText(key);
  int value = ref.getInt("value", 4);
  v_value.setText("" + value);
 } 
 
 public void onPause(){
  super.onPause();
  SharedPreferences ref = getSharedPreferences("ImageViewActivity",Service.MODE_PRIVATE);
  SharedPreferences.Editor edit = ref.edit();
  String key = v_key.getText().toString();
  int value = 0;  
  try{
  value = Integer.parseInt(v_value.getText().toString());
  }catch(Exception ex){}
  edit.putString("key", key);
  edit.putInt("value", value);
  edit.commit();
 }
}

위에 내용에서 보면 getSharedPreferences 을 이용하여 첫번째 인자 내용의 xml 파일엥서 그 내용을 편집하기 위해 지정한다.

이는 DDMS 에서 패키지 명을 찾아 그 아래 폴더를 찾아보면 나와 있다.

또한 반드시 해야 할 것은 commit 처리이다. 저것을 하지 않으면 저장이 되지 않는다.