Android 학습 노트 (13) Shared Preference 가 파악 해 야 할 기초

10171 단어
Google 은 개발 중 에 일부 문자열, 태그 또는 일부 프로필 등 소량의 데 이 터 를 저장 합 니 다. 이 럴 때 SQLite 를 사용 하여 이 데 이 터 를 저장 하면 큰 인재 가 적 고 사용 하기에 도 불편 할 수 있 습 니 다. 이러한 정 보 는 Shared Preferences 에 저장 하 는 것 이 적당 합 니 다.
1. Shared Preferences 소개.
1. Shared Preferences 는 가 벼 운 저장 방식 으로 xml 파일 을 바탕 으로 key - value 키 값 을 저장 하여 데 이 터 를 저장 하 는 원 리 를 가지 고 있 으 며, 일반적으로 간단 한 설정 정 보 를 저장 하 는 데 사용 된다.저장 위치: / data / data / {가방 이름} / sharedprefs 디 렉 터 리 아래.Shared Preferences 대상 자 체 는 저장 과 수정 을 지원 하지 않 고 데이터 만 가 져 올 수 있 으 며 저장 수정 은 Editor 대상 을 통 해 이 루어 집 니 다.
2. Shared Preferences 대상 은 SQLite 데이터베이스 에 비해 더욱 경량급 이 므 로 데이터 베 이 스 를 만 들 거나 표를 만 들 거나 SQL 문 구 를 쓰 는 등 일련의 작업 이 필요 하지 않 습 니 다.옥 에 티 는 Shared Preferences 가 몇 가지 유형의 데이터 만 지원 하 는 것 입 니 다.
  boolean、 int 、float、 long、String
3. Shared Preferences 자체 가 인터페이스 입 니 다. 프로그램 은 인 스 턴 스 를 직접 만 들 수 없습니다. Context 에서 제공 하 는 getShared Preferences (String name, int mode) 를 통 해 인 스 턴 스 를 얻 을 수 있 습 니 다. 이 방법의 두 번 째 인 자 는 다음 과 같은 몇 가지 값 을 지원 합 니 다.
  · Context.MODE_PRIVATE: 로 컬 프로그램 에 만 읽 히 고 씁 니 다.
  · Context.MODE_WORLD_READABLE: 다른 프로그램 에서 읽 을 수 있 습 니 다.
  · Context.MODE_WORLD_WRITEABLE: 다른 프로그램 에서 읽 고 쓸 수 있 습 니 다.
4. Shared Preferences 의 일반적인 방법 은 다음 과 같 습 니 다.
· boolean contans (String key): Shared Preferences 에 특정 key 의 데이터 가 포함 되 어 있 는 지 판단 합 니 다.
  · abstract Map getAll (): 모든 key - value 키 쌍 을 가 져 옵 니 다.
· boolean getXxx (String key, xxx default): 지정 한 key 에 대응 하 는 값 을 가 져 옵 니 다. 이 key 가 존재 하지 않 으 면 default 값 을 되 돌려 줍 니 다.
또 하 나 는 조건 조회 등 도 지원 되 지 않 기 때문에 Shared Preferences 는 조작 하기에 매우 편리 하지만 저장 방식 의 보충 으로 만 사용 할 수 있 을 뿐 SQLite 데이터베이스 등 다른 데이터 저장 방식 을 완전히 대체 할 수 없다 는 것 이다.
2. Editor 소개
Shared Preferences 자 체 는 데 이 터 를 기록 하 는 방법 을 제공 하지 않 고 Shared Preferences 의 대상 을 통 해 editor () 방법 으로 Editor 대상 을 가 져 와 데 이 터 를 기록 합 니 다.Editor 에서 자주 사용 하 는 방법 은 다음 과 같 습 니 다.
· clear (): Shared Preferences 의 모든 데 이 터 를 삭제 합 니 다.
· putXxx (String key, xxx value): Shared Preferences 에 데 이 터 를 기록 합 니 다.
· remove (String key): Shared Preferences 에서 지정 한 key 의 값 을 삭제 합 니 다.
· commt (): Editor 가 편집 되면 이 방법 은 수정 사항 을 제출 합 니 다.
3. 하나의 예 로 Shared Preferences 의 용법 을 설명 합 니 다.
Shared Preferences 가 어떻게 사용 되 는 지 간단 한 예 로 설명 하 겠 습 니 다.
1. 우선 레이아웃 파일 activity 만 들 기main, 레이아웃 파일 에 입력 상자, 읽 기, 쓰기, 제거 등 네 개의 공간 을 설치 합 니 다.읽 기 코드 는 다음 과 같 습 니 다:
 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:orientation="vertical"
 6      >
 7 
 8     <EditText
 9         android:id="@+id/et_data"
10         android:layout_width="wrap_content"
11         android:layout_height="wrap_content"
12         android:ems="10" >
13 
14         <requestFocus />
15     </EditText>
16 
17     <Button
18         android:id="@+id/btn_read"
19         android:layout_width="wrap_content"
20         android:layout_height="wrap_content"
21         android:text="  " />
22     
23     <Button
24         android:id="@+id/btn_write"
25         android:layout_width="wrap_content"
26         android:layout_height="wrap_content"
27         android:text="  " />
28     
29     <Button
30         android:id="@+id/btn_clear"
31         android:layout_width="wrap_content"
32         android:layout_height="wrap_content"
33         android:text="  " />
34 
35 </LinearLayout>

 레이아웃 파일 이 매우 간단 하 니 여 기 는 일일이 분석 하지 않 겠 습 니 다.
2. 그 다음 에 MainActivity 를 만 들 고 MainActivity 에서 Shared Preferences 에 대한 기록, 읽 기, 선명 등 관련 작업 을 실현 합 니 다. 코드 는 다음 과 같 습 니 다.
 1 /**
 2  * MainActivity
 3  * 
 4  * @author liuwei
 5  * 
 6  */
 7 public class MainActivity extends Activity {
 8     private SharedPreferences preferences;
 9     private Editor editor;
10     EditText et_data;
11     Button btn_read;
12     Button btn_write;
13     Button btn_clear;
14 
15     @Override
16     protected void onCreate(Bundle savedInstanceState) {
17         super.onCreate(savedInstanceState);
18         setContentView(R.layout.activity_main);
19         et_data = (EditText) findViewById(R.id.et_data);
20         btn_read = (Button) findViewById(R.id.btn_read);
21         btn_write = (Button) findViewById(R.id.btn_write);
22         btn_clear = (Button) findViewById(R.id.btn_clear);
23         preferences = getPreferences(Activity.MODE_PRIVATE);
24         editor = preferences.edit();
25         btn_read.setOnClickListener(new OnClickListener() {
26 
27             @Override
28             public void onClick(View v) {
29                 String str = preferences.getString("key", "     ");
30                 Toast.makeText(getApplicationContext(), str, Toast.LENGTH_SHORT)
31                         .show();
32             }
33         });
34         btn_write.setOnClickListener(new OnClickListener() {
35 
36             @Override
37             public void onClick(View v) {
38                 editor.putString("key", et_data.getText().toString());
39                 if (editor.commit()) {
40                     Toast.makeText(getApplicationContext(), "    ",
41                             Toast.LENGTH_SHORT).show();
42                 }
43             }
44         });
45         btn_clear.setOnClickListener(new OnClickListener() {
46 
47             @Override
48             public void onClick(View v) {
49                 editor.clear();
50                 if (editor.commit()) {
51                     Toast.makeText(getApplicationContext(), "    ",
52                             Toast.LENGTH_SHORT).show();
53                 }
54 
55             }
56         });
57     }
58 }

코드 분석:
(1) 코드 에서 먼저 Shared Preferences 와 Editor 의 대상 을 만 들 고 onCreate () 방법 에서 초기 화 작업 을 했 습 니 다.
(2) editor. putString () 방법 을 통 해 데 이 터 를 기록 하고 데 이 터 를 키 로 입력 합 니 다.
(3) Shared Preferences 대상 의 getString (key, default) 방법 을 통 해 대응 하 는 key 의 값 을 얻 을 수 있 습 니 다. 여기 서 두 번 째 매개 변 수 는 default 는 key 에 대응 하 는 데이터 가 없 을 때 기본 값 으로 우리 가 직접 값 을 부여 할 수 있 습 니 다.
(4) 마지막 으로 editor. clear () 방법 을 통 해 Shared Preferences 를 비 울 수 있 습 니 다.
주: Editor 대상 에 대한 작업 은 작업 이 끝 난 후에 commt 방법 을 실행 해 야 합 니 다.동시에 editor. comit () 방법 은 boolean 값 을 되 돌려 줍 니 다. true 를 성공 적 으로 실행 하고 실 패 를 false 로 되 돌려 줍 니 다.
   
본문 링크:http://www.cnblogs.com/codingblock/p/4887436.html
성명: 본 고 는 모든 형식의 전 재 를 환영 하지만 본 고의 링크 를 반드시 보존 해 주 십시오. 감사합니다!

좋은 웹페이지 즐겨찾기