Android登入使用者名稱記住密碼——喜好設定(SharedPreferences)

來源:互聯網
上載者:User
SharedPreferences:喜好設定

喜好設定指的是“個人化”,即同一個軟體,不同的使用者,設定的結果是不一樣的,例如某音樂播放器中的“是否在WIFI情況下下載歌詞”、某遊戲中的“是否開啟背景音樂”、“是否開啟間效”,某新聞APP中的“預設字型大小”…… 一.使用喜好設定的資料的特徵是: 資料量小 存在可描述的K-V關係 資料在應用程式中私人,不需要共用給其它應用 隨時可能需要儲存或讀取 二.使用喜好設定儲存資料:

調用Context的getSharedPreferences(String name, int mode)方法擷取SharedPreferences對象,其中,第1個參數表示儲存喜好設定的檔案的檔案名稱,不需要指定副檔名,儲存時會自動添加.xml作為副檔名,第2個參數固定取值Context.MODE_PRIVATE

調用SharedPreferences對象的edit()方法,擷取SharedPreferences.Editor對象

調用SharedPreferences.Editor對象的put???(String key, ??? value)方法寫入資料

調用SharedPreferences.Editor對象的commit()方法提交寫入

使用喜好設定儲存的資料固定會儲存在 /data/data/應用程式的package/shared_prefs/ 檔案夾下,如果檔案夾不存在,系統會自動建立。

在系統的 設定(Settings) -> 應用程式(Apps) 找到儲存了喜好設定的應用,選擇 清除資料(Clear Data) 將會把所有喜好設定資料、私人檔案、資料庫、登入的帳號清除掉。 三.讀取喜好設定中的資料:

調用Context的getSharedPreferences(String name, int mode)方法擷取SharedPreferences對象,過程可參考儲存資料

調用SharedPreferences對象的get???(String key, ??? defValue)方法讀取資料

注意:在喜好設定中讀取資料時,可以將喜好設定視為“是不可靠的”,因為首次運行時可能沒有儲存過資料,則讀不到資料,或者使用者在使用軟體的過程中,隨時可能清除資料,也將讀不到資料。 四.登入記住使用者名稱與密碼

public class MainActivity extends Activity {    // 聲明控制項    private Button btLog;    private EditText etUserName;    private EditText etPassWord;    // 聲明變數    private SharedPreferences preferences;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        // 控制項初始化        btLog=(Button)findViewById(R.id.button1);        etUserName=(EditText)findViewById(R.id.editText1);        etPassWord=(EditText)findViewById(R.id.editText2);        //擷取到喜好設定對象:第一個參數是表名,第二個參數是許可權        preferences=this.getSharedPreferences("login",this.MODE_PRIVATE);        //擷取到喜好設定裡面存的使用者名稱和密碼資料        String name=preferences.getString("name", "");        String pass=preferences.getString("pass", "");        //往兩個輸入框裡面放我們儲存的資料        etUserName.setText(name);        etPassWord.setText(pass);        //設定登入按鈕的點擊事件:把輸入的資料存入喜好設定        btLog.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                //將資料儲存到喜好設定裡面                //1.擷取到喜好設定的一個編輯的對象                Editor ed=preferences.edit();                //2.編輯器.putString;放字串                    //2.1.擷取輸入框的內容                    String username=etUserName.getText().toString().trim();                    String password=etPassWord.getText().toString().trim();                    //2.2.放入我們的資料                    ed.putString("name",username);                    ed.putString("pass",password);                //3.提交                ed.commit();                Toast.makeText(getApplicationContext(),"儲存成功",Toast.LENGTH_SHORT).show();            }        });    }}
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.