SharedPreferences是Android中一種輕量級的存儲機制,可以輕鬆存儲和讀取應用程序的簡單數據和設置。它的應用場景包括儲存應用程序的配置信息、用戶喜好設置、應用程序的狀態信息、需要緩存的數據等等。SharedPreferences能夠持久化保存數據並且在下次應用程序啟動時重新加載這些數據。
一、使用SharedPreferences儲存和訪問數據
可以通過以下代碼段加載、存儲和操作SharedPreferences:
//獲取SharedPreferences實例
SharedPreferences sharedPreferences = getSharedPreferences("myPref", Context.MODE_PRIVATE);
//存儲數據
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("name", "Tom");
editor.putInt("age", 25);
editor.apply();
//讀取數據
String name = sharedPreferences.getString("name", "");
int age = sharedPreferences.getInt("age", -1);
//刪除單個數據
editor.remove("name");
editor.apply();
//刪除全部數據
editor.clear();
editor.apply();
通過參數”myPref”和Context.MODE_PRIVATE創建一個SharedPreferences實例。使用SharedPreferences.Editor的put方法存儲數據,apply方法則將對SharedPreferences的修改提交。
使用get方法從SharedPreferences讀取數據,如果指定的鍵不存在則其次參數返回默認值。使用remove方法可以刪除單個元素,使用clear方法可以刪除所有元素。
二、在Fragment或者Activity中使用SharedPreferences
Fragment或者Activity中使用SharedPreferences存儲和訪問數據與在上下文中使用相同的方法。可以通過以下方式加載並使用SharedPreferences:
//獲取SharedPreferences實例
SharedPreferences sharedPreferences = getActivity().getPreferences(Context.MODE_PRIVATE);
//存儲數據
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean("enabled", true);
editor.apply();
//讀取數據
boolean enabled = sharedPreferences.getBoolean("enabled", false);
使用getActivity().getPreferences(Context.MODE_PRIVATE)方法獲取SharedPreferences實例,這種方式的文件名是這個Activity的類名。
三、使用SharedPreferences實現應用程序設置
SharedPreferences也可以用來存儲應用程序的設置。通過這種方式存儲的數據會在應用程序的生命周期中一直保持。以下是如何在Activity中實現應用程序設置的一個簡單實例:
public class SettingsActivity extends AppCompatActivity {
private Switch mSwitch;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
mSwitch = (Switch) findViewById(R.id.switch_notifications);
mSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(SettingsActivity.this).edit();
editor.putBoolean(getString(R.string.notification_pref_key), isChecked);
editor.apply();
}
});
boolean notificationsEnabled = PreferenceManager.getDefaultSharedPreferences(this)
.getBoolean(getString(R.string.notification_pref_key), false);
mSwitch.setChecked(notificationsEnabled);
}
}
上述代碼展示了如何在應用程序中添加開關按鈕以控制設置信息。在這個Activity中,我們使用SharedPreferences存儲和讀取一個布爾值,並根據所存儲的值來更新這個開關。
使用getDefaultSharedPreferences方法來獲得一個SharedPreferences實例,這個方法使用默認的SharedPreferences文件名
.
四、總結
SharedPreferences是一種非常簡單易用的機制,可以用來存儲和讀取程序的簡單數據和設置。與其他的數據存儲機制(如SQLite)比較,SharedPreferences 的代碼實現和處理也很簡單。
建議儘可能使用SharedPreferences來確定應用程序的配置選項,但在面對更複雜的數據和結構時,可能需要使用其他的儲存機制。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/241032.html
微信掃一掃
支付寶掃一掃