国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Android > 正文

Android持久化技術(shù)之SharedPreferences存儲(chǔ)實(shí)例詳解

2020-04-11 10:58:19
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文實(shí)例講述了Android持久化技術(shù)之SharedPreferences存儲(chǔ)。分享給大家供大家參考,具體如下:

1、SharedPreferences存儲(chǔ)

在前面一篇文章《Android持久化技術(shù)之文件的讀取與寫入實(shí)例詳解》中,我們介紹了Android持久化技術(shù)的文件的讀取與寫入。在本文中,繼續(xù)介紹Android持久化技術(shù)另外一個(gè)SharedPreferences存儲(chǔ)。

(1)SharedPreferences存儲(chǔ)方式是基于key-value的,通過(guò)key可以找到對(duì)應(yīng)的value。
(2)支持多種數(shù)據(jù)類型存儲(chǔ),比如字符串、整形、布爾型等,并有對(duì)應(yīng)的存儲(chǔ)與獲取方法。
(3)獲取SharedPreferences對(duì)象有多種方式。
使用Context類的getSharedPreferences方法。
使用Activity類的getPreferences方法
使用PreferenceManager類的getDefaultSharedPreferences方法
(4)當(dāng)存儲(chǔ)時(shí),需要通過(guò)SharedPreferences對(duì)象獲取SharedPreferences.Editor對(duì)象
(5)默認(rèn)存儲(chǔ)路徑為:/data/data/包名/shared_prefs/目錄
(6)存儲(chǔ)文件類型為xml文件

2、示例

場(chǎng)景:點(diǎn)擊保存按鈕,存儲(chǔ)數(shù)據(jù);點(diǎn)擊恢復(fù)按鈕,恢復(fù)數(shù)據(jù)。

(1)activity_main.xml

<?xml version="1.0" encoding="utf-8"?><TableLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:layout_width="match_parent"  android:layout_height="match_parent"  android:stretchColumns="1"  >  <TableRow    android:id="@+id/tableRow1"    android:layout_width="wrap_content"    android:layout_height="wrap_content" >    <TextView      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:text="Account:" />    <EditText      android:id="@+id/account"      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:hint="Input your account here"      android:ems="10" >    </EditText>  </TableRow>  <TableRow    android:id="@+id/tableRow2"    android:layout_width="wrap_content"    android:layout_height="wrap_content" >    <TextView      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:text="Password:"       />    <EditText      android:id="@+id/password"      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:ems="10"      android:inputType="textPassword"      >    </EditText>  </TableRow>  <TableRow    android:id="@+id/tableRow3"    android:layout_width="wrap_content"    android:layout_height="wrap_content" >    <Button    android:id="@+id/login"    android:layout_span="2"    android:layout_height="wrap_content"    android:text="save data" />  </TableRow>  <TextView    android:layout_width="wrap_content"    android:layout_height="20dp"    android:background="#ff0000"    android:text="我是萬(wàn)惡的分割線"    android:textSize="20sp"    android:gravity="center"    />   <TableRow    android:id="@+id/tableRow4"    android:layout_width="wrap_content"    android:layout_height="wrap_content" >    <TextView      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:text="Account:" />    <EditText      android:id="@+id/account2"      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:ems="10" >    </EditText>  </TableRow>  <TableRow    android:id="@+id/tableRow5"    android:layout_width="wrap_content"    android:layout_height="wrap_content" >    <TextView      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:text="Password:"       />    <EditText      android:id="@+id/password2"      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:ems="10"      android:inputType="textPassword"      >    </EditText>  </TableRow>  <TableRow    android:id="@+id/tableRow6"    android:layout_width="wrap_content"    android:layout_height="wrap_content" >    <Button    android:id="@+id/login2"    android:layout_span="2"    android:layout_height="wrap_content"    android:text="restore data" />  </TableRow></TableLayout>

(2)MainActivity.java

package com.example.testsharedpreferences;import android.app.Activity;import android.content.SharedPreferences;import android.os.Bundle;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;/** * Android 持久化技術(shù)-----SharedPreferences存儲(chǔ) * @author yy * */public class MainActivity extends Activity {  private EditText accountEdit;  private EditText passwordEdit;  private Button saveButton;  private Button restoreButton;  private SharedPreferences pref;  private SharedPreferences.Editor editor;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    //存儲(chǔ)按鈕    saveButton = (Button) findViewById(R.id.login);    //為存儲(chǔ)按鈕添加點(diǎn)擊事件    saveButton.setOnClickListener(new OnClickListener() {      @Override      public void onClick(View arg0) {        //獲取SharedPreferences對(duì)象        //第一個(gè)參數(shù):文件名,沒(méi)有則新建。第二個(gè)參數(shù):寫入模式-覆蓋        pref = getSharedPreferences("second", MODE_PRIVATE);        //獲取SharedPreferences.Editor對(duì)象        editor = pref.edit();        //獲取輸入的賬號(hào)內(nèi)容        accountEdit = (EditText) findViewById(R.id.account);        String account = accountEdit.getText().toString();        //獲取輸入的密碼內(nèi)容        passwordEdit = (EditText) findViewById(R.id.password);        String password = passwordEdit.getText().toString();        //存儲(chǔ)用戶名和密碼        editor.putString("account", account);        editor.putString("password", password);        //提交        editor.commit();        Toast.makeText(getApplicationContext(), "保存成功", Toast.LENGTH_SHORT).show();      }    });    //獲取恢復(fù)按鈕對(duì)象    restoreButton = (Button) findViewById(R.id.login2);    //添加事件    restoreButton.setOnClickListener(new OnClickListener() {      @Override      public void onClick(View arg0) {        //獲取SharedPreference對(duì)象        pref = getSharedPreferences("second", MODE_PRIVATE);        //讀取內(nèi)容        String account = pref.getString("account", "this is default value");        String password = pref.getString("password", "this is default value");        //設(shè)置到響應(yīng)位置        EditText editText2 = (EditText)findViewById(R.id.account2);        editText2.setText(account);        EditText passwordText2 = (EditText) findViewById(R.id.password2);        passwordText2.setText(password);        Toast.makeText(getApplicationContext(), "恢復(fù)成功", Toast.LENGTH_SHORT).show();      }    });  }  @Override  public boolean onCreateOptionsMenu(Menu menu) {    // Inflate the menu; this adds items to the action bar if it is present.    getMenuInflater().inflate(R.menu.main, menu);    return true;  }}

3、結(jié)果

輸入內(nèi)容后,當(dāng)點(diǎn)擊“save data”按鈕后,存儲(chǔ)文件為second.xml,如下:

對(duì)應(yīng)內(nèi)容:

下面是效果圖:

 

希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 孟津县| 长乐市| 杭州市| 邵武市| 阿鲁科尔沁旗| 长海县| 广水市| 余姚市| 扶沟县| 白玉县| 松滋市| 宜章县| 胶南市| 安塞县| 东乡| 花莲县| 喀喇| 昌图县| 志丹县| 龙江县| 离岛区| 资兴市| 三河市| 茌平县| 徐水县| 太湖县| 沁阳市| 巴彦县| 芷江| 白城市| 尼木县| 屏山县| 舟曲县| 太湖县| 台中市| 阿图什市| 涡阳县| 阿拉尔市| 岚皋县| 莲花县| 遂溪县|