public class MainActivity extends Activity {
private SharedPreferences pref = null;
private EditText nameEditText = null;
private EditText emailEditText = null;
private EditText phoneEditText = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
pref = getSharedPreferences("net.cranix.android.preftest",Activity.MODE_PRIVATE);
nameEditText = (EditText) findViewById(R.id.nameEditText);
emailEditText = (EditText) findViewById(R.id.emailEditText);
phoneEditText = (EditText) findViewById(R.id.phoneEditText);
nameEditText.setText(pref.getString("name", ""));
emailEditText.setText(pref.getString("email", ""));
phoneEditText.setText(pref.getString("phone", ""));
}
@Override
protected void onStop() {
super.onStop();
SharedPreferences.Editor editor = pref.edit();
editor.putString("name", nameEditText.getText().toString());
editor.putString("email", emailEditText.getText().toString());
editor.putString("phone", phoneEditText.getText().toString());
editor.commit();
}
}
이렇게 현재 화면 정보 같은 작은 정보들을 저장하기 위해서 안드로이드는 SharedPreferences 라는 클래스를 제공한다.
이 클래스는 위 소스 에서와 같이 getSharedPreferences 메소드로 객체를 생성 할 수 있다.
이렇게 생성된 SharedPreferences 객체는 getString 과 같은 getXXX 형태의 메소드로 값을 얻어 올 수 있다.
위 소스에서 Activity 가 종료되는 onStop 메소드 에서는 SharedPreferences 에다가 현재 환경을 저장하고 있다.
SharedPreferneces 는 pref.edit() 로 Editor 객체를 얻은후 putString 으로 값을 변경한다. 다 변경했으면 editor.commit() 함수로 변경된 내용을 저장한다.
위에서도 언급했듯이 SharedPreferences 는 임시변수나 현재 UI 정보같은 작은 크기의 정보를 저장하기 적합하다. 조금 더 큰 데이터는 직접 파일에 쓰거나 SQL 을 사용하여 DB 에 저장하도록 하여야 한다.
'Programming > Android' 카테고리의 다른 글
Dual Screen Android Demo (0) | 2011.04.13 |
---|---|
화면 해상도 구하기 (0) | 2011.04.07 |
Touch Drag 속도에 따라 동작 달리하기 (VelocityTracker) (0) | 2011.04.05 |
ListView 스크롤시 검은색 배경으로 바뀌는 문제 & Selector가 표시되지 않는 경우 (1) | 2010.12.03 |
알아두면 요긴한 FLAG_ACTIVITY 네 가지 (0) | 2010.08.17 |