Android使用SharedPreferences儲存帳號密碼

來源:互聯網
上載者:User

標籤:find   err   模式   apply   模型   開啟   預設   應用   儲存資料   

       有很多的應用都會有儲存密碼和帳號的功能,比如QQ。接下來就講講使用SharedPreferences來儲存密碼和帳號,也許有些人會考慮的資料庫,但是我個人認為對於儲存簡單的資料,使用的資料庫就大材小用了,SharedPreferences比較輕量級

首先寫好布局,只有兩個輸入框和一個按鈕

<EditText        android:id="@+id/number"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:inputType="number" />    <EditText        android:id="@+id/password"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:inputType="textPassword" />    <Button        android:id="@+id/save"        android:text="儲存"        android:layout_width="match_parent"        android:layout_height="wrap_content" />

擷取取控制項

    private EditText number;    private EditText password;    private Button save;     number = (EditText) findViewById(R.id.number);     password = (EditText) findViewById(R.id.password);     save = (Button) findViewById(R.id.save);

在擷取控制項之後,還要擷取SharedPreferences,第一參數為儲存的檔案名稱,第二個為儲存的模型,當檔案存在就讀取,如果不存在就建立

private SharedPreferences sp;

//第一參數為儲存的檔案名稱,第二個為儲存的模型,當檔案存在就讀取,如果不存在就建立sp = getSharedPreferences("info",MODE_PRIVATE);

增加按鈕點擊事件,點擊按鈕儲存帳號和密碼

save.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                //擷取輸入框的帳號和密碼                String numberStr = number.getText().toString().trim();                String passwordStr = password.getText().toString().trim();                //判斷是否為空白                if (numberStr.isEmpty() || passwordStr.isEmpty()){                    Toast.makeText(getApplicationContext(),"帳號或密碼不可為空",Toast.LENGTH_SHORT).show();                }else {                    //擷取Editor                    SharedPreferences.Editor editor = sp.edit();                    //輸入內容                    editor.putString("number",numberStr);                    editor.putString("password",passwordStr);                    //必須提交才會生效,也可以使用apply                    editor.commit();                    Toast.makeText(getApplicationContext(),"儲存成功",Toast.LENGTH_SHORT).show();                }            }        });

當我們儲存帳號和密碼後,想要在第二次開啟應用時直接寫密碼和帳號,還有在載入頁面時擷取資料

//擷取info檔案的內容,第一參數為儲存時的key,第二個是如果擷取不到的預設值        String numberStr1 = sp.getString("number","");        String passwordStr2 = sp.getString("password","");        number.setText(numberStr1);        password.setText(passwordStr2);

 

這個info.xml的檔案儲存在data/data/包名/shared_prefs/info.xml,可以看到是以XML格式儲存的

 

最後再來理一理整個思路

儲存

①通過getSharedPreferences("檔案名稱",模式)獲得SharedPreferences

②通過sp.edit()擷取Editor

③使用editor調用putXXX(key,value)儲存資料

④使用editor調用apply()或者commit()才會生效

讀取

①通過getSharedPreferences("檔案名稱",模式)獲得SharedPreferences

②通過sp.getXXX(key,defValue)直接可以獲得資料

 

Android使用SharedPreferences儲存帳號密碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.