亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
簡(jiǎn)單使用:
儲(chǔ)存物件:
參考:
AIDL支援的資料型別
bundle可傳遞資料型別:
intent可傳遞資料型別:
首頁(yè) Java Java基礎(chǔ) sharedpreferences可以儲(chǔ)存什麼資料類型

sharedpreferences可以儲(chǔ)存什麼資料類型

Jun 03, 2021 pm 02:51 PM
資料類型

SharedPreferences只能保存簡(jiǎn)單類型的數(shù)據(jù),只能儲(chǔ)存string,int,float,long和boolean資料類型。如果需要存取比較複雜的資料類型例如類別或影像,則需要對(duì)這些資料進(jìn)行編碼。

sharedpreferences可以儲(chǔ)存什麼資料類型

本教學(xué)操作環(huán)境:windows7系統(tǒng)、java10版、Dell G3電腦。

日常開(kāi)發(fā)中我們常常要用到保存數(shù)據(jù),Android中常用的存儲(chǔ)方式有SQLite,sharedPreferences 等,當(dāng)然也有各自的應(yīng)用場(chǎng)景,前者適用於保存較多數(shù)據(jù)的情形,後者責(zé)傾向於保存使用者偏好設(shè)定例如某個(gè)checkbox的選擇狀態(tài),使用者登入的狀態(tài)、設(shè)定訊息,實(shí)現(xiàn)記住密碼功能等等,都是以鍵值對(duì)的形式進(jìn)行的檔案讀取。

但是每?jī)?chǔ)存一個(gè)資料都要提供一個(gè)key,如果要儲(chǔ)存多個(gè)資料那豈不是要寫(xiě)多個(gè)key?例如我們要保存一個(gè)用戶的登入訊息,例如用戶暱稱,個(gè)性簽名,登入時(shí)間………尼瑪我一條數(shù)據(jù)寫(xiě)一個(gè)的話我都可以玩一盤(pán)擼啊擼了反正我是受不了那麼我們能否將使用者資訊封裝起來(lái),統(tǒng)一以一個(gè)key來(lái)保存呢?答案是肯定可以的~
Java類別庫(kù)中提供的位元組輸入輸出流可以輕鬆?zhēng)臀覀兺瓿扇我忸愋偷絊tring的可逆轉(zhuǎn)換,繼而我們就可以保存到Share中了~

SharedPreferences只能保存簡(jiǎn)單類型的數(shù)據(jù),例如四種基本類型(int,float,long,boolean) String。如果需要存取比較複雜的資料類型例如類別或影像,則需要對(duì)這些資料進(jìn)行編碼,通常將其轉(zhuǎn)換成Base64編碼,然後將轉(zhuǎn)換後的資料以字串的形式保存在XML檔案中。

sharedpreferences可以儲(chǔ)存什麼資料類型

簡(jiǎn)單使用:

#可儲(chǔ)存的類型:

string,int,float,long,boolean

		//獲取sharedPreferences對(duì)象
        SharedPreferences sharedPreferences = getSharedPreferences("zjl", Context.MODE_PRIVATE);
        //獲取editor對(duì)象
        SharedPreferences.Editor editor = sharedPreferences.edit();//獲取編輯器
        //存儲(chǔ)鍵值對(duì)
        editor.putString("name", "周杰倫");

        editor.putInt("age", 24);
        editor.putBoolean("isMarried", false);
        editor.putLong("height", 175L);
        editor.putFloat("weight", 60f);

        editor.putStringSet("where", set);
        //提交
        editor.commit();//提交修改





        SharedPreferences sharedPreferences = getSharedPreferences("zjl", Context.MODE_PRIVATE);
        //getString()第二個(gè)參數(shù)為缺省值,如果preference中不存在該key,將返回缺省值
        String name = sharedPreferences.getString("name", "");
        int age = sharedPreferences.getInt("age", 1);

儲(chǔ)存物件:

方法一:fastJson/Gson/Jackson將物件轉(zhuǎn)換成字串,然後再儲(chǔ)存。

方法二:ObjectOutputStream將物件轉(zhuǎn)換成流,base64將流轉(zhuǎn)成字串,然後再儲(chǔ)存。

package com.example.draggridview;

/**
 * Created by Administrator on 2017/6/19.
 */

import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.util.Base64;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;

/**
 * SharedPreferences工具類,可以保存object對(duì)象
 */
public class SharedPreferenceUtil {

    /**
     * 存放實(shí)體類以及任意類型
     *
     * @param context 上下文對(duì)象
     * @param key
     * @param obj
     */
    public static void putBean(Context context, String key, Object obj) {
        if (obj instanceof Serializable) {// obj必須實(shí)現(xiàn)Serializable接口,否則會(huì)出問(wèn)題
            try {
                ByteArrayOutputStream baos = new ByteArrayOutputStream();
                ObjectOutputStream oos = new ObjectOutputStream(baos);
                oos.writeObject(obj);
                String string64 = new String(Base64.encode(baos.toByteArray(), 0));
                SharedPreferences.Editor editor = getSharedPreferences(context).edit();
                editor.putString(key, string64).commit();
            } catch (IOException e) {
                e.printStackTrace();
            }

        } else {
            throw new IllegalArgumentException("the obj must implement Serializble");
        }

    }

    public static Object getBean(Context context, String key) {
        Object obj = null;
        try {
            String base64 = getSharedPreferences(context).getString(key, "");
            if (base64.equals("")) {
                return null;
            }
            byte[] base64Bytes = Base64.decode(base64.getBytes(), 1);
            ByteArrayInputStream bais = new ByteArrayInputStream(base64Bytes);
            ObjectInputStream ois = new ObjectInputStream(bais);
            obj = ois.readObject();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return obj;
    }
    
}

參考:

使用SharedPreference保存list數(shù)據(jù),其實(shí)可以保存Object物件

Android開(kāi)發(fā)筆記-SharedPreferences 儲(chǔ)存實(shí)體類別以及任意型別

Android資料持久化之SharedPreference

AIDL支援的資料型別

  1. 所有基礎(chǔ)型別(byte/short/int/long/float/double/boolean/char 等)

  2. String,List,Map,CharSequence等類別

  3. #其他AIDL介面類型

  4. 所有Parcelable的類別

bundle可傳遞資料型別:

#1、byte/short/int/long/float/double/boolean/char等八種基本型別或它們對(duì)應(yīng)的陣列

2、String、charsequence或?qū)?yīng)的數(shù)組,也可以是物件()或物件陣列。

3、Bundle.putSerializable(Key,Object); //實(shí)作Serializable介面的物件

4、Bundle.putParcelable(Key, Object); //實(shí)作Parcelable介面的物件

sharedpreferences可以儲(chǔ)存什麼資料類型

sharedpreferences可以儲(chǔ)存什麼資料類型

sharedpreferences可以儲(chǔ)存什麼資料類型

sharedpreferences可以儲(chǔ)存什麼資料類型

intent可傳遞資料型別:

intent傳遞類型(abcd)

A、Serializable? ? ?B、charsequence? ? ?C、Parcelable? D、Bundle

1、八種基本資料型別及其對(duì)應(yīng)陣列

2、String/Charsequence 及其對(duì)應(yīng)陣列

3、Parcelable 及其對(duì)應(yīng)陣列/Serializable

4、bundle/intent

sharedpreferences可以儲(chǔ)存什麼資料類型

sharedpreferences可以儲(chǔ)存什麼資料類型

sharedpreferences可以儲(chǔ)存什麼資料類型

#相關(guān)免費(fèi)學(xué)習(xí)推薦:java基礎(chǔ)教學(xué)

#

以上是sharedpreferences可以儲(chǔ)存什麼資料類型的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

熱門(mén)話題

Laravel 教程
1597
29
PHP教程
1488
72
MySQL資料庫(kù)中性別欄位應(yīng)該使用什麼資料類型? MySQL資料庫(kù)中性別欄位應(yīng)該使用什麼資料類型? Mar 14, 2024 pm 01:21 PM

在MySQL資料庫(kù)中,性別欄位通??梢允褂肊NUM類型來(lái)儲(chǔ)存。 ENUM是一種枚舉類型,它允許我們?cè)谝唤M預(yù)先定義的值中選擇一個(gè)作為欄位的值。在表示性別這樣一個(gè)固定且有限的選項(xiàng)時(shí),ENUM是一個(gè)很好的選擇。讓我們來(lái)看一個(gè)具體的程式碼範(fàn)例:假設(shè)我們有一個(gè)名為"users"的表,其中包含了使用者的信息,包括性別?,F(xiàn)在我們要為性別創(chuàng)建一個(gè)字段,我們可以這樣設(shè)計(jì)表結(jié)構(gòu):CRE

MySQL中最適合用於性別欄位的資料類型是什麼? MySQL中最適合用於性別欄位的資料類型是什麼? Mar 15, 2024 am 10:24 AM

在MySQL中,最適合用於性別欄位的資料類型是ENUM枚舉類型。 ENUM枚舉類型是一種允許定義一組可能取值的資料類型,性別欄位適合使用ENUM類型是因?yàn)樾詣e通常只有兩個(gè)取值,即男性和女性。接下來(lái),我將透過(guò)具體的程式碼範(fàn)例來(lái)展示如何在MySQL中建立一個(gè)性別欄位並使用ENUM枚舉類型儲(chǔ)存性別資訊。以下是操作步驟:首先,在MySQL中建立一個(gè)名為users的表格,包括

Python 語(yǔ)法的心智圖:深入理解程式碼結(jié)構(gòu) Python 語(yǔ)法的心智圖:深入理解程式碼結(jié)構(gòu) Feb 21, 2024 am 09:00 AM

python憑藉其簡(jiǎn)單易讀的語(yǔ)法,廣泛應(yīng)用於廣泛的領(lǐng)域。掌握Python語(yǔ)法的基礎(chǔ)架構(gòu)至關(guān)重要,既可以提高程式效率,又能深入理解程式碼的運(yùn)作方式。為此,本文提供了一個(gè)全面的心智圖,詳細(xì)闡述了Python語(yǔ)法的各個(gè)面向。變數(shù)和資料類型變數(shù)是Python中用於儲(chǔ)存資料的容器。心智圖展示了常見(jiàn)的Python資料類型,包括整數(shù)、浮點(diǎn)數(shù)、字串、布林值和列表。每個(gè)資料類型都有其自身的特性和操作方法。運(yùn)算符運(yùn)算符用於對(duì)資料類型執(zhí)行各種操作。心智圖涵蓋了Python中的不同運(yùn)算子類型,例如算術(shù)運(yùn)算子、比

MySQL中布林類型的使用方法詳解 MySQL中布林類型的使用方法詳解 Mar 15, 2024 am 11:45 AM

MySQL中布林類型的使用方法詳解MySQL是一種常用的關(guān)聯(lián)式資料庫(kù)管理系統(tǒng),在實(shí)際應(yīng)用中經(jīng)常需要使用布林類型來(lái)表示邏輯上的真假值。 MySQL中布林類型有兩種表示法:TINYINT(1)和BOOL。本文將詳細(xì)介紹MySQL中布林類型的使用方法,包括布林類型的定義、賦值、查詢和修改等操作,同時(shí)結(jié)合具體的程式碼範(fàn)例進(jìn)行說(shuō)明。 1.布林類型的定義在MySQL中,可

MySQL中性別欄位最佳資料類型選擇是什麼? MySQL中性別欄位最佳資料類型選擇是什麼? Mar 14, 2024 pm 01:24 PM

在設(shè)計(jì)資料庫(kù)表時(shí),選擇合適的資料類型對(duì)於效能最佳化和資料儲(chǔ)存效率非常重要。在MySQL資料庫(kù)中,儲(chǔ)存性別欄位的資料類型真是沒(méi)有所謂的最佳選擇,因?yàn)樾詣e欄位一般只有兩個(gè)取值:男或女。但是為了效率和節(jié)省空間,我們可以選擇合適的資料類型來(lái)儲(chǔ)存性別欄位。在MySQL中,儲(chǔ)存性別欄位最常用的資料類型是枚舉類型。枚舉類型是一種能夠把欄位的值限定在一個(gè)有限的集合內(nèi)的資料型別

揭秘主流程式語(yǔ)言中的基本資料型別分類 揭秘主流程式語(yǔ)言中的基本資料型別分類 Feb 18, 2024 pm 10:34 PM

標(biāo)題:基本資料類型大揭密:了解主流程式語(yǔ)言中的分類正文:在各種程式語(yǔ)言中,資料類型是非常重要的概念,它定義了可以在程式中使用的不同類型的資料。對(duì)於程式設(shè)計(jì)師來(lái)說(shuō),了解主流程式語(yǔ)言中的基本資料類型是建立堅(jiān)實(shí)程式基礎(chǔ)的第一步。目前,大多數(shù)主流程式語(yǔ)言都支援一些基本的資料類型,它們?cè)谡Z(yǔ)言之間可能有所差異,但主要概念是相似的。這些基本資料類型通常被分為幾個(gè)類別,包括整數(shù)

Python學(xué)習(xí)必備的基礎(chǔ)知識(shí)有哪些? Python學(xué)習(xí)必備的基礎(chǔ)知識(shí)有哪些? Jan 13, 2024 pm 01:37 PM

學(xué)習(xí)Python前需要掌握哪些基礎(chǔ)?隨著人工智慧、大數(shù)據(jù)和雲(yún)端運(yùn)算等技術(shù)的不斷發(fā)展,程式設(shè)計(jì)已成為現(xiàn)代社會(huì)中越來(lái)越重要的技能。而Python作為一門(mén)簡(jiǎn)潔易學(xué)且功能強(qiáng)大的程式語(yǔ)言,越來(lái)越受到廣大程式設(shè)計(jì)師和初學(xué)者的青睞。如果你也打算學(xué)習(xí)Python,那麼在開(kāi)始之前有一些基礎(chǔ)知識(shí)是必須掌握的。理解程式設(shè)計(jì)的基本概念在開(kāi)始學(xué)習(xí)任何程式語(yǔ)言之前,首先需要先理解一些基本的

C語(yǔ)言的基本語(yǔ)法和資料類型介紹 C語(yǔ)言的基本語(yǔ)法和資料類型介紹 Mar 18, 2024 pm 04:03 PM

C語(yǔ)言是一種廣泛使用的電腦程式語(yǔ)言,具有高效、靈活和強(qiáng)大的特點(diǎn)。要熟練使用C語(yǔ)言進(jìn)行編程,首先需要了解其基本語(yǔ)法和資料類型。本文將介紹C語(yǔ)言的基本語(yǔ)法和資料類型,並舉例說(shuō)明。一、基本語(yǔ)法1.1註解在C語(yǔ)言中,可以使用註解來(lái)對(duì)程式碼進(jìn)行說(shuō)明,以便於理解和維護(hù)。註解可以分為單行註解和多行註解。 //這是單行註解/*這是多行註解*/1.2關(guān)鍵字C語(yǔ)

See all articles