編輯:關於android開發
SharedPreference:
1.是一種輕型的數據存貯方式
2.本質是基於xml文件存貯key_value鍵值對數據
3.通常用來存貯一些簡單的配置信息(密碼,窗口狀態,軟件的基本配置,壁紙等等)
SharedPreferences對象只能獲取數據而不支持存貯和修改,存貯和修改是通過Editor對象實現
使用SharedPreferences保存數據的步驟:
1.獲得SharedPreferences對象
有兩種方式
(1)通過函數context.getsharedpreferences(string name,int mode) 獲得的SharedPreferences對象可以被同一應用程序下的其他組件共享。name為指定文件的名稱,mode為操作模式 ,共有四種(Context.MODE_PRIVATE:為默認操作模式,代表該文件是私有數據,只能被應用本身訪問,在該模式下,寫入的內容會覆蓋原文件的內容。Context.MODE_APPEND:模式會檢查文件是否存在,存在就往文件追加內容,否則就創建新文件。MODE_WORLD_READABLE:表示當前文件可以被其他應用讀取。MODE_WORLD_WRITEABLE:表示當前文件可以被其他應用寫入。)
SharedPreferences pre = getSharedPreferences("myinfo", MODE_PRIVATE);
(2)通過函數activity.getpreferences(int mode),其中配置文件僅可以被調用的activity使用。mode為操作模式
2.獲得SharedPreferences.Editor對象
SharedPreferences pre = getSharedPreferences("myinfo", MODE_PRIVATE); Editor edit=pre.edit();
3.通過Editor接口的putXxx()方法保存key-value,其中的Xxx表示不同的數據類型
edit.putString("name", "zhangsan"); edit.putString("age", "30");
edit.commit();
SharedPreferences pre = getSharedPreferences("myinfo", MODE_PRIVATE); pre.getString("name", ""); pre.getString("age", "");5.移除數據
edit.remove("name"); edit.remove("age"); edit.commit();我學習的大概就這麼多了 。下面附上一個實例。保存用戶名和密碼
運行結果
MainActivity.class
package com.example.sharedpreferences; import android.os.Bundle; import android.app.Activity; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.view.View; import android.widget.CheckBox; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends Activity { private EditText et_name; private EditText et_passward; private CheckBox ckb_save; private SharedPreferences pre; private Editor edit; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et_name = (EditText) findViewById(R.id.et_name); et_passward = (EditText) findViewById(R.id.et_passward); ckb_save = (CheckBox) findViewById(R.id.checkBox1); pre = getSharedPreferences("myinfo", MODE_PRIVATE); edit = pre.edit(); String name=pre.getString("name", ""); String passward=pre.getString("passward", ""); if(name!=null&&passward!=null){ et_name.setText(name); et_passward.setText(passward); } } public void btnLogin(View v) { switch (v.getId()) { case R.id.btn_login: { String name = et_name.getText().toString(); String passward = et_passward.getText().toString(); if (name!=null&&passward!=null) { if (ckb_save.isChecked()) { edit.putString("name", name); edit.putString("passward", passward); edit.commit(); Toast.makeText(MainActivity.this, "保存用戶成功", Toast.LENGTH_SHORT).show(); } else{ Toast.makeText(MainActivity.this, "未勾選保存,保存失敗", Toast.LENGTH_SHORT).show(); } } else{ Toast.makeText(MainActivity.this, "用戶名或者密碼為空,請重新輸入", Toast.LENGTH_SHORT).show(); et_name.setText(null); et_passward.setText(null); } break; } case R.id.btn_cancel: { edit.remove("name"); edit.remove("passward"); edit.commit(); Toast.makeText(MainActivity.this, "已成功忘記", Toast.LENGTH_SHORT).show(); break; } } } }
Android 手機衛士--設置密碼對話框,android設置密碼本文實現初次設置密碼驗證過程,首先實現如下效果 本文地址:http://www.cnblogs.com
Android最佳實踐之SystemBar狀態欄全版本適配方案 前言 自從MD設計規范出來後,關於系統狀態欄的適配越受到關注,因為MD在5.0以後把系統狀態欄的顏色改
Android筆記 - Binder之請求注冊Service組件 Android 系統中大量采用了組件化的設計思路,將大量的核心服務以 Service 組件來對外提供。S
今天我用自己寫的一個Demo 和大家詳細介紹一個Android開發中遇到的一些常用系統控件的使用技