1. 程式人生 > >在Android中使用SharedPreferences儲存資料以實現資料共享

在Android中使用SharedPreferences儲存資料以實現資料共享

在Android中,我們可以使用SharedPreferences來儲存資料,以實現資料的共享。

(以一個使用者登入為例)

簡介:

首先我們需要了解一下SharedPreferences類,SharedPreferences是一個輕量級的儲存類,使用SharedPreferences儲存資料通常是講資料儲存在xml檔案,而xml檔案通常儲存位置在/data/data/<專案包名>/xx.xml。

1.獲取SharedPreferences物件

SharedPreferences sharedPreferences=
					getSharedPreferences("userlogin", Activity.MODE_PRIVATE);
			

通過以上獲取到SharedPreferences物件,userlogin是我用來儲存使用者登入成功時的使用者名稱的,即將登陸成功的使用者名稱儲存到userlogin.xml中,後續頁面有需要獲取當前登入使用者的使用者名稱時,而已通過使用SharedPreferences讀取userlogin.xml檔案即可。

注意:在獲取物件時,在getSharedPreferences方法中,xml名字只需要輸入檔名即可,不需要在加“.xml”,SharedPreferences會預設替你加上“.xml”。

上述是在Activity中獲取SharedPreferences物件,如果是fragment中,則需要使用以下:
SharedPreferences sharedPreferences=getActivity().getSharedPreferences("userlogin", Context.MODE_PRIVATE);
		

2.寫入資料前需要獲取Editor物件

SharedPreferences.Editor editor=sharedPreferences.edit();
通過使用sharedpreferences物件呼叫edit()方法來獲取Editor物件。

3.寫入資料

利用editor物件寫入資料,sharedpreferences在xml檔案中儲存是以鍵值對的形式儲存資料,如下:
<span style="white-space:pre">	</span>editor.putString("loginname", username);
	editor.commit();

putString方法第一個引數是儲存的資料的key,第二個引數是要儲存的資料,當然我這裡是儲存string型別的資料,所以使用的putString,以此類推,在put之後需要再commit提交一下。

4.讀取資料

讀取資料之前同樣需要先獲取sharedpreferences物件,參照前面,不再贅述。在獲取sharedpreferences物件後,如下:

loginedname=sharedPreferences.getString("loginname", "");

同樣是根據鍵值對來獲取資料,第一個引數是要獲取的資料的key,第二個引數是預設值,預設為“”。

5.完整的讀取和寫入資料

寫入:

SharedPreferences sharedPreferences=
					getSharedPreferences("userlogin", Activity.MODE_PRIVATE);
			SharedPreferences.Editor editor=sharedPreferences.edit();
			editor.putString("loginname", username);
			editor.commit();
讀取:
SharedPreferences sharedPreferences=getActivity().getSharedPreferences("userlogin", Context.MODE_PRIVATE);
		loginedname=sharedPreferences.getString("loginname", "");




相關推薦

Android使用SharedPreferences儲存資料實現資料共享

在Android中,我們可以使用SharedPreferences來儲存資料,以實現資料的共享。 (以一個使用者登入為例) 簡介: 首先我們需要了解一下SharedPreferences類,Share

AndroidSharedPreferences儲存資料實現註冊和登入功能(首次安裝預設開啟註冊,記住密碼)

註冊介面xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

Spark Streaming 之 consumer offsets 儲存到 Zookeeper 實現資料零丟失

在 Spark Streaming 中消費 Kafka 資料的時候,有兩種方式: 1)基於 Receiver-based 的 createStream 方法 2)Direct Approach (No Receivers) 方式的 createDirectStream 方法

android 鍵值對 方式存取 資料 方式之 SharedPreferences

說道   資料存取, 那就要  持久化..(這裡不說File ,Sqlite ,哈哈,這些當然可以理解為 檔案.. ) SharedPreferences 檔案是使用 XML 格式來對資料進行管理的.

Android SharedPreferences跨應用讀取資料

http://download.csdn.net/download/gcsdn2000/4161520 儲存 package edu.cczu.SimplePreference; import android.app.Activity; import android.c

android儲存資料方法

android中儲存資料的方式有 1,雲端儲存(網路儲存), 2,本地SharedPreferences儲存少量資料, 3,本地檔案流儲存, 4,本地資料庫儲存。 下面講的第2,3,4點; 2.SharedPreferences為程式持久化儲存少量值: <span s

Android使用SharedPreferences儲存HashSet資料不能更新成功

android 使用SharedPreferences儲存HashSet的時候要注意資料不能寫入進去的問題: 不能更新的問題就出在getStringSet的object和putStringSet的ob

AndroidSharedPreferences儲存,讀取和刪除資料

SharedPreferences類是一個輕量級的儲存類,特別適合用於儲存軟體配置引數。使用SharedPreferences儲存資料,其背後是用xml檔案存放資料,檔案存放在/data/data/&

Android面試】(一):Androidactivity儲存狀態和資料到底該在哪個方法進行

        今天接到一個電面,途中面試官問到一個問題,如果一個activity在後臺的時候,因為記憶體不足可能被殺死,在這之前如果想儲存其中的狀態資料,比如說客戶填的一些資訊之類的,該在哪個方法中進行。         我聽到的第一反應就是說:在onPause方法中進

看得見的資料結構Android版之表的陣列實現(資料結構篇)

零、前言: 一講到裝東西的容器,你可能習慣於使用ArrayList和陣列,你有想過ArrayList和陣列的區別嗎? Java的類起名字都不是隨便亂起的,一般前面是輔助,後面是實質:ArrayList = Array + List Array就是陣列,List便是表結構,ArrayList即陣列實現的

測試技能:在oracle自用儲存過程進行測試資料構造

一、實踐 –迴圈賦值 declare i integer; –定義變數 begin i := 101; loop /* 插入資料 */ insert into emp (EMP_ID, E_ID, UM_ID, NAME, BIRTHDAY, A

Linux環境下在docker配置Oracle資料庫並實現資料持久化

一  CentOs安裝docker 前置條件: 64-bit 系統 kernel 3.10+ 作者以下操作皆在root使用者下進行 1.檢查核心版本,返回的值大於等於3.10即可。   # uname -r 2.確保yum是最新的   # yum up

android okhttp post請求傳遞json資料

public final static int CONNECT_TIMEOUT = 60; public final static int READ_TIMEOUT = 100;

Android開發入門之採用ListView實現資料列表顯示

再次用到上一篇寫過的db工程, activity_main.xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://s

Android通過介面回撥來實現資料更新(Kotlin版)

最近開發一個專案,用的是kotlin,本人kotlin水平有限,還請諒解,需要在fragment修改資料,然後更新到activity中,我使用介面回撥來完成這個需求。 先上一張圖來看一下 修改完暱稱,不僅要在fragment裡更新資料,還要同步更新act

【String.xml】修改Androidstrings.xml檔案, 動態改變資料

有些朋友可能會動態的修改Android中strings.xml檔案中的值,在這裡給大家推薦一種簡單的方法。strings.xml中節點是支援佔位符的,如下所示: <string name="data">整數型:%1$d,浮點型:%2$.2f,字串:%3$s&

SharedPreferences儲存各種型別的資料

/**  * 專門訪問和設定SharePreference的工具類, 儲存和配置一些設定資訊  */ public class PrefUtils { private static final S

Androidactivity之間如何傳遞Hashmap資料

我的使用場景是當一個頁面需頁面中的listview中的hashmap的資料時要另一個,就要用到了傳遞hashmap資料。 在傳送方,我的程式碼是這樣的: package cn.oddcloud.ww

Android基於bmob後端雲實現資料讀取

最近在上手一個app作為練手,是關於失物招領的,其中要實現的一個功能是從雲端讀取資料展示在app的listview當中,其實這個功能挺常見的,不過這裡還是拿來分享一下,主要介紹我解決的過程以及思路。 我認為要注意的! 1.Fragment中如何findbyview? 2

運用fastjson+SharedPreferences 儲存、讀取複雜資料

儲存資料: SharedPreferencesUtil.putString(getActivity(), getString(R.string.faxian_title), JSON.toJSONString));//tmpSubject是一個複雜的類 讀