Android攻城狮数据存储之SharedPreferences
生活随笔
收集整理的這篇文章主要介紹了
Android攻城狮数据存储之SharedPreferences
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Android的四種數(shù)據(jù)存儲方式:
1. SharedPreferences
2. SQLite
3. Content Provider
4. File
---------------------
SharedPreferences:
1. 是一種輕型的數(shù)據(jù)存儲方法;
2. 本質(zhì)是基于 XML 文件存儲 key-value 鍵值對數(shù)據(jù);
3. 通常用來存儲一些簡單的配置信息。一般是放置當前應用的屬性值,信息量不多,所以用數(shù)據(jù)庫的話不劃算,還可能造成時間上的浪費。
只能實現(xiàn)非常簡單的存放數(shù)據(jù)和讀取數(shù)據(jù)。SharedPreferences只能識別簡單的數(shù)據(jù)類型,比如String、int,對于復雜的類型,比如自定義的類型,可能就無法存儲了(或者通過轉碼操作轉變?yōu)樽址驳故强梢源鎯?#xff09;。
SharedPreferences屬于Android自帶的輕量級的存儲類,效率并不是很高。
----------------------
要點:
1. SharedPreferences對象本身只能獲取數(shù)據(jù)而不支持存儲和修改,存儲和修改是通過 Editor 對象實現(xiàn)的;
2. 實現(xiàn) SharedPreferences 存儲的步驟:
(1)獲得 SharedPreferences 對象;
(2)獲得 SharedPreferences.Editor 對象;
(3)通過 Editor 接口的 putXxx 方法保存 key-value對,其中的Xxx表示不同的數(shù)據(jù)類型;
(4)通過 Editor 接口的 commit 方法保存 key-value對。 1 public class MainActivity extends ActionBarActivity {
2 EditText username, password;
3 SharedPreferences pre;
4 CheckBox checkBox;
5 Editor editor;
6
7 @Override
8 protected void onCreate(Bundle savedInstanceState) {
9 super.onCreate(savedInstanceState);
10 setContentView(R.layout.fragment_main);
11 // SharedPreferences pref =
12 // PreferenceManager.getDefaultSharedPreferences(MainActivity.this);
13
14 /*--------------------------
15 SharedPreferences pref = getSharedPreferences("myPref", MODE_PRIVATE);
16 Editor editor = pref.edit();
17 editor.putString("name", "zy");
18 editor.putInt("age", 22);
19 editor.putLong("time", System.currentTimeMillis());
20 editor.putBoolean("default", true);
21
22 editor.commit();
23 editor.remove("default");
24 editor.commit();
25 System.out.println(pref.getString("name", "xx"));
26 System.out.println(pref.getInt("age", 0));
27 */
28
29 // ----------------實例-------------
30 username = (EditText) findViewById(R.id.username);
31 password = (EditText) findViewById(R.id.password);
32 checkBox = (CheckBox) findViewById(R.id.savename);
33 pre = getSharedPreferences("userinfo", MODE_PRIVATE);
34 editor = pre.edit();
35 String name = pre.getString("username", "");
36 if (name == null || name.equals("")) {
37 checkBox.setChecked(false);
38 } else {
39 checkBox.setChecked(true);
40 username.setText(name);
41 }
42
43 }
44
45 public void doClick(View view) {
46 switch (view.getId()) {
47 case R.id.login:
48 String name = username.getText().toString().trim();
49 String pass = password.getText().toString().trim();
50 if ("zy".equals(name) && "123456".equals(pass)) {
51 if (checkBox.isChecked()) {
52 editor.putString("username", name);
53 editor.commit();
54
55 } else {
56 editor.remove("username");
57 editor.commit();
58 }
59 Toast.makeText(MainActivity.this, "成功了", 0).show();
60 } else {
61 Toast.makeText(MainActivity.this, "失敗咯", 0).show();
62 }
63
64 break;
65
66 case R.id.cancel:
67 break;
68 }
69 }
70 }
?
轉載于:https://www.cnblogs.com/my334420/p/6729088.html
總結
以上是生活随笔為你收集整理的Android攻城狮数据存储之SharedPreferences的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 智能电饭煲自动洗米手机操控一键搞定
- 下一篇: Leetcode 523 连续的子数组和