SharedPreferences是Android平臺上一個輕量級的存儲類,用來保存應用的一些常用配置,比如Activity狀態,Activity暫停時,將此activity的狀態保存到SharedPereferences中;當Activity重載,系統回調方法onSaveInstanceState ...
SharedPreferences是Android平臺上一個輕量級的存儲類,用來保存應用的一些常用配置,比如Activity狀態,Activity暫停時,將此activity的狀態保存到SharedPereferences中;當Activity重載,系統回調方法onSaveInstanceState時,再從SharedPreferences中將值取出……。下麵通過一個小小的案例,分享一下我之前做的。
1、最終效果圖
大致就是通過SharedPreferences存儲類創建一個配置文件(這裡是通過按鈕去觸發的),然後向配置文件中寫入配置信息,最後就是讀配置中“鍵”對應的“值”(這裡通過按鈕觸發將讀到的值顯示出來)。還是比較簡單,很容易的。
2、佈局文件
activity_main.xml:
1 <?xml version="1.0" encoding="utf-8"?> 2 <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:app="http://schemas.android.com/apk/res-auto" 4 xmlns:tools="http://schemas.android.com/tools" 5 android:layout_width="match_parent" 6 android:layout_height="match_parent" 7 tools:context="thonlon.example.cn.sharedpreferencesdemo.MainActivity"> 8 9 <Button 10 android:id="@+id/btn_create" 11 android:layout_width="396dp" 12 android:layout_height="46dp" 13 android:text="@string/btn_create_sp" 14 app:layout_constraintBottom_toBottomOf="parent" 15 app:layout_constraintLeft_toLeftOf="parent" 16 app:layout_constraintRight_toRightOf="parent" 17 app:layout_constraintTop_toTopOf="parent" 18 app:layout_constraintVertical_bias="0.0" /> 19 20 <Button 21 android:id="@+id/btn_getInfo" 22 android:layout_width="396dp" 23 android:layout_height="46dp" 24 android:layout_marginLeft="0dp" 25 android:text="@string/btn_getInfo_sp" 26 app:layout_constraintBottom_toBottomOf="parent" 27 app:layout_constraintLeft_toLeftOf="parent" 28 app:layout_constraintRight_toRightOf="parent" 29 app:layout_constraintTop_toTopOf="parent" 30 app:layout_constraintVertical_bias="0.1" /> 31 32 <TextView 33 android:id="@+id/textView1" 34 android:layout_width="80dp" 35 android:layout_height="20dp" 36 android:background="@color/colorPrimary" 37 android:text="英文顯示:" 38 android:textAlignment="center" 39 android:textColor="@color/colorWhite" 40 app:layout_constraintBottom_toBottomOf="parent" 41 app:layout_constraintHorizontal_bias="0.0" 42 app:layout_constraintLeft_toLeftOf="parent" 43 app:layout_constraintRight_toRightOf="parent" 44 app:layout_constraintTop_toTopOf="parent" 45 app:layout_constraintVertical_bias="0.465" /> 46 47 <TextView 48 android:id="@+id/textView2" 49 android:layout_width="80dp" 50 android:layout_height="20dp" 51 android:background="@color/colorPrimary" 52 android:text="中文顯示:" 53 android:textAlignment="center" 54 android:textColor="@color/colorWhite" 55 app:layout_constraintBottom_toBottomOf="parent" 56 app:layout_constraintHorizontal_bias="0" 57 app:layout_constraintLeft_toLeftOf="parent" 58 app:layout_constraintRight_toRightOf="parent" 59 app:layout_constraintTop_toTopOf="parent" 60 app:layout_constraintVertical_bias="0.205" /> 61 62 <TextView 63 android:id="@+id/tv1" 64 android:layout_width="wrap_content" 65 android:layout_height="wrap_content" 66 app:layout_constraintBottom_toBottomOf="parent" 67 app:layout_constraintHorizontal_bias="0.0" 68 app:layout_constraintLeft_toLeftOf="parent" 69 app:layout_constraintRight_toRightOf="parent" 70 app:layout_constraintTop_toTopOf="parent" 71 app:layout_constraintVertical_bias="0.244" /> 72 73 <TextView 74 android:id="@+id/tv2" 75 android:layout_width="wrap_content" 76 android:layout_height="wrap_content" 77 app:layout_constraintBottom_toBottomOf="parent" 78 app:layout_constraintHorizontal_bias="0.0" 79 app:layout_constraintLeft_toLeftOf="parent" 80 app:layout_constraintRight_toRightOf="parent" 81 app:layout_constraintTop_toTopOf="parent" 82 app:layout_constraintVertical_bias="0.53" /> 83 </android.support.constraint.ConstraintLayout>
3、activity文件
MainActivity.java
1 package thonlon.example.cn.sharedpreferencesdemo; 2 3 import android.content.SharedPreferences; 4 import android.support.v7.app.AppCompatActivity; 5 import android.os.Bundle; 6 import android.view.View; 7 import android.widget.Button; 8 import android.widget.TextView; 9 import android.widget.Toast; 10 11 public class MainActivity extends AppCompatActivity { 12 13 private SharedPreferences sharedPreferences; 14 private Button btn_create, btn_getInfo; 15 private TextView textView1, textView2; 16 17 @Override 18 protected void onCreate(Bundle savedInstanceState) { 19 super.onCreate(savedInstanceState); 20 setContentView(R.layout.activity_main); 21 btn_create = (Button) findViewById(R.id.btn_create); 22 btn_getInfo = (Button) findViewById(R.id.btn_getInfo); 23 textView1 = (TextView) findViewById(R.id.tv1); 24 textView2 = (TextView) findViewById(R.id.tv2); 25 // 設置配置文件的名稱和配置文件的被訪問許可權 26 sharedPreferences = getSharedPreferences("config", MODE_ENABLE_WRITE_AHEAD_LOGGING); 27 btn_create.setOnClickListener(new View.OnClickListener() { 28 @Override 29 public void onClick(View view) { 30 write(); 31 } 32 33 private void write() { 34 //得到配置編輯器 35 SharedPreferences.Editor edit = sharedPreferences.edit(); 36 //寫入配置信息到配置文件中 37 edit.putString("Chinese", "SharedPreferences是Android平臺上一個輕量級的存儲類。"); 38 edit.putString("English", "SharedPreferences is a lightweight storage class on the Android platform to save some of the common configuration of the application."); 39 //註意以上只是將配置信息寫入了記憶體 40 edit.commit();//提交記憶體配置信息到本地 41 Toast.makeText(getApplicationContext(), "成功創建文件", Toast.LENGTH_LONG).show(); 42 } 43 }); 44 btn_getInfo.setOnClickListener(new View.OnClickListener() { 45 @Override 46 public void onClick(View view) { 47 read(); 48 } 49 50 private void read() { 51 String chinese_info = sharedPreferences.getString("Chinese", ""); 52 String english_info = sharedPreferences.getString("English", ""); 53 textView1.setText(chinese_info); 54 textView2.setText(english_info); 55 } 56 }); 57 } 58 }