1. 程式人生 > >安卓中sharepreference總結

安卓中sharepreference總結

一、概述

        SharePreferences是用來儲存一些簡單配置資訊的一種機制,使用Map資料結構來儲存資料,以鍵值對的方式儲存,採用了XML格式將資料儲存到裝置中。例如儲存登入使用者的使用者名稱和密碼。只能在同一個包內使用,不能在不同的包之間使用,其實也就是說只能在創建它的應用中使用,其他應用無法使用。

二、使用
       通過Context.getSharedPreferences方法獲取SharedPreferences物件,引數分別為儲存的檔名和儲存模式。

三、操作

       SharePreferences儲存資料是通過獲取Editor編輯器物件來操作的。
呼叫Editor.putxxxx方法,兩個引數分別為鍵和值。


呼叫Editor.getxxxx方法,兩個引數分別為鍵和不存在指定鍵時的預設值。呼叫Editor.remove方法,引數為指定的鍵。
呼叫Editor.clear方法
上述所有方法呼叫都要執行Editor.commit方法來提交。

四、直接上程式碼 ,

4.1 封裝了sharepreferece 相關方法的類

package com.demo;

import java.util.HashMap;
import java.util.Map;

import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;

public class PreferencesUtil {
	private Context context;
	
	public PreferencesUtil(Context context) {
		this.context = context;
	}
	/**
	 * 儲存引數
	 * @param name 姓名
	 * @param age 年齡
	 */
	public void save(String name, Integer age) {
		SharedPreferences preferences = context.getSharedPreferences("student", Context.MODE_PRIVATE);
		Editor editor = preferences.edit();
		editor.putString("name", name);
		editor.putInt("age", age);
		editor.commit();
	}
	/**
	 * 獲取各項配置引數
	 * @return
	 */
	public Map<String, String> getPreferences(){
		Map<String, String> params = new HashMap<String, String>();
		SharedPreferences preferences = context.getSharedPreferences("student", Context.MODE_PRIVATE);
		params.put("name", preferences.getString("name", ""));
		params.put("age", String.valueOf(preferences.getInt("age", 0)));
		return params;
	}
}
4.2 呼叫顯示及其操作的Activity
package <span style="font-family: Arial;">com.demo.</span><span style="font-family: Arial;">settings;</span>

import java.util.Map;

import com.demo.PreferencesUtil;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {
    private EditText nameText;
    private EditText ageText;
    private PreferencesService service;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        nameText = (EditText) this.findViewById(R.id.name);
        ageText = (EditText) this.findViewById(R.id.age);
        service = new PreferencesService(this);
        Map<String, String> params = service.getPreferences();
        nameText.setText(params.get("name"));
        ageText.setText(params.get("age"));
    }
    
    public void save(View v){
    	String name = nameText.getText().toString();
    	String age = ageText.getText().toString();
    	service.save(name, Integer.valueOf(age));
    	Toast.makeText(getApplicationContext(), R.string.success, 1).show();
    }
    
    
}
4.3 資料顯示的佈局檔案
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/name"
    />
    
    <EditText
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/name"
    />
    
    <TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/age"
    />
    
    <EditText
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:numeric="integer"
    android:id="@+id/age"
    />
    
    <Button
     android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/button"
    android:onClick="save"
    />
</LinearLayout>
還有就是如果是新建的類,別忘了在AndroidManifest.xml中加上,今天關於安卓中偏好資料研究總結就到此

相關推薦

sharepreference總結

一、概述         SharePreferences是用來儲存一些簡單配置資訊的一種機制,使用Map資料結構來儲存資料,以鍵值對的方式儲存,採用了XML格式將資料儲存到裝置中。例如儲存登入使用者

廣播 服務 及其簡單應用範圍的一些總結

1.廣播與廣播接收者 1.API 靜態註冊廣播接收者 清單檔案中配置: <receiver android:name="包名.廣播接收者檔案" > <intent-filter android:pr

遮罩圖片的處理

reference south res rac req hat 代碼 cep flag 安卓開發中必不可少的就是各種圖片的圓角,遮罩等等。 曾經我都是用shape處理的。發現背景圖的圓角要設置成和界面父元素背景一樣才幹看不出現紕漏。 當遇到背景多變的情況,比方listv

解決單個dex方法數超過65535的方法

ati oid 超過 sta get ble text enabled 方法 1、百度下載 60K-methods.jar包,復制至libs文件夾中,添加到gradle中 2、在build.gradle中的defaultConfig{}下添加 multiDexEnable

Bitmap的處理

呼叫安卓手機系統照相機進行拍照 系統照相機得到的相片解析度太大,如果不處理直接使用就會導致OutOfMemery異常,我採用的是下面這段程式碼:// 計算圖片的縮放值public static int calculateInSampleSize(BitmapFactory.Options opt

管理Activity

安卓中一般在BaseActivity 管理所有的Activity 因為所有的Activity 繼承自BaseActivity 步驟: 1:在BaseActivity New 一個ArrayList 儲存Activity private List<Activity> allA

探索java與json物件與json字串之間的關係

  前段時間一直在跟json資料打交道,從一開始的什麼都不懂,到現在整合了許多知識的懵懂,還是收穫了不少對於json格式資料新的看法和安卓資料傳輸的理解。   首先,json資料的格式是什麼樣的呢?我們來定義一個字串型別的json資料。  String json

遇見的一些問題

Android-studio程式碼中遇到的一些問題-----持續更新記錄 1、安卓studio gradle正常編譯執行時找不到library包 圖片描述 解決辦法 將library專案下的build.gradle->buildTypes{

Cordova - 徹底搞定的微信支付插件!

以及 andro 發現 bug 輸入參數 為我 開始 如何 工具 你看到這個標題肯定會驚訝,一個Cordova的微信支付插件,有這麽誇張嗎?信不信由你,我相信,最終你會回來看這篇文章的! 一,不要使用的微信支付插件:https://github.com/xu-li/cord

Cordova - 徹底搞定的微信支付外掛!

Cordova:8.0.0 Android studio:3.2.1 你看到這個標題肯定會驚訝,一個Cordova的微信支付外掛,有這麼誇張嗎? 一,不要使用的微信支付外掛:https://github.com/xu-li/cordova-plugin-wechat  上面的外掛,是目前大家

關於的Handler

Handler是用來執行緒間傳遞資料,在主執行緒將Handler例項化,子執行緒《工作執行緒,執行較長的耗時業務》可以通過Handler傳送資料到主執行緒,當Looper輪詢到Message Queue時,將訊息交給 Handler進行處理,通過回撥handleMessage(Message m

825 巴士精華總結

點選上面藍色字型關注“IT大飛說” 訂閱公眾號(ID:ITBigFly)第一時間收到推送 一年一度的安卓巴士開發者大會在上海隆重舉行,有幸親臨參加了本次大會,本篇文章僅對本次大會的個人感受和各位技術大佬的分享以及未來的技術趨勢與大家分享。   本次大會的主要內容有:技

如何使用Sensor simulator 在模擬器上進行感測器開發

大家好啊,這是本人的第一篇部落格,最近在搞安卓的感測器開發,在這篇文章裡我詳述了基於SensorSimulator的感測器開發步驟。使用SensorSimulator可以在沒有手機的情況下在電腦上模擬手機的姿態,來測試比如像用到方向感測器一類的程式。希望對大家有所幫助。 0.啟動eclipse,

資料庫運用---做個便籤app

前言:這個app其實很早之前就做完了,但當時沒有積累,大二剛開了Java課對安卓有了一些新認識於是前幾天就把這個app重做了一遍,總結下來(文章最後有GitHub地址,但建議還是先看一下部落格的思路) 效果如圖: 總體就是運用資料庫裡的修改,儲存,還有recycl

之佈局總結

 Adroid佈局 有人形象地比喻,Android開發中的佈局就相當於一棟建築的外觀架構。佈局用得好,這棟建築的外觀才美觀高大上。   Android佈局管理器 Android佈局管理器本身是一個介面控制元件,所有的佈局管理器都是ViewGroup類的子類,都是可以當做容器類來使用

藍芽擴音HFP的一些分析

最近看了一些大牛的部落格,無不提到了技術分享的重要性,的確,分享自己的知識不僅僅是與他人討論並相互提高的過程,更是對自己知識的梳理。希望自己能以此為契機,形成周期性部落格分享的習慣。 文章標題為HFP的一些分析,HFP(Hand Free Profile)主要定義了安卓中與

開發客串下美工用三個gif 圖實現的走馬燈效果

安卓開發客串下美工用三個gif 圖實現安卓中的走馬燈效果   最終效果是這個樣子的          ??????????????? 這個不像跑馬燈,到像是受驚的野馬亂蹦 啊,呵呵,在本地快

從零開始的RxJava2.0教程(四)在的應用

1. 前言 2. RxAndroid RxAndroid是RxJava針對Android平臺的擴充套件庫。 曾幾何時,RxAndroid確實提供了很多的實用的方法,但後來社群上很多人對這庫的結構有意見,然後作者便進行了重構,現在只保留了Androi

RxJava2.0在的二級快取策略

前言 在上一篇 安卓網路資料快取策略 中,介紹了安卓中資料的快取策略,這篇將用RxJava2.0 實現 Json/Xml 資料的二級快取。 對於 RxJava2.0 不瞭解的,可以看一下這篇入門教程 從零開始的RxJava2.0教程1-4 。 彷彿有一

EditText點選空白處隱藏軟鍵盤

Android開發過程中,點選EditText會出現鍵盤,當我們輸入完畢時,還要點一下返回鍵才能隱藏軟鍵盤,重寫下面這個方法,只要點選空白處就可以隱藏軟鍵盤,很方便,很實用。 /**