sharedpreferences可以存储什么数据类型
SharedPreferences只能保存简单类型的数据,只能存储string,int,float,long和boolean数据类型。如果需要存取比较复杂的数据类型比如类或者图像,则需要对这些数据进行编码。
本教程操作环境:windows7系统、java10版、Dell G3电脑。
日常开发中我们常常要用到保存数据,Android中常用的存储方式有SQLite,sharedPreferences 等,当然也有各自的应用场景,前者适用于保存较多数据的情形,后者责倾向于保存用户偏好设置比如某个checkbox的选择状态,用户登录的状态、配置信息,实现记住密码功能等等,都是以键值对的形式进行的文件读取。
但是每存储一个数据都要提供一个key,如果要存储多个数据那岂不是要写多个key?例如我们要保存一个用户的登录信息,比如用户昵称,个性签名,登录时间………尼玛我一条数据写一个的话我都可以玩一盘撸啊撸了反正我是受不了那么我们能否将用户信息封装起来,统一以一个key来保存呢?答案是肯定可以的~
Java类库中提供的字节输入输出流可以轻松帮我们完成任意类型到String的可逆转换,继而我们就可以保存到Share中了~
SharedPreferences只能保存简单类型的数据,例如四种基本类型(int,float,long,boolean)+String。如果需要存取比较复杂的数据类型比如类或者图像,则需要对这些数据进行编码,通常将其转换成Base64编码,然后将转换后的数据以字符串的形式保存在XML文件中。
简单使用:
可保存的类型:
string,int,float,long,boolean
//获取sharedPreferences对象 SharedPreferences sharedPreferences = getSharedPreferences("zjl", Context.MODE_PRIVATE); //获取editor对象 SharedPreferences.Editor editor = sharedPreferences.edit();//获取编辑器 //存储键值对 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()第二个参数为缺省值,如果preference中不存在该key,将返回缺省值 String name = sharedPreferences.getString("name", ""); int age = sharedPreferences.getInt("age", 1);
存储对象:
方法一:fastJson/Gson/Jackson将对象转换成字符串,然后再保存。
方法二:ObjectOutputStream将对象转化成流,base64将流转成字符串,然后再保存。
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对象 */ public class SharedPreferenceUtil { /** * 存放实体类以及任意类型 * * @param context 上下文对象 * @param key * @param obj */ public static void putBean(Context context, String key, Object obj) { if (obj instanceof Serializable) {// obj必须实现Serializable接口,否则会出问题 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数据,其实可以保存Object对象
Android开发笔记——SharedPreferences 存储实体类以及任意类型
Android数据持久化之SharedPreference
AIDL支持的数据类型
所有基础类型(byte/short/int/long/float/double/boolean/char 等)
String,List,Map,CharSequence等类
其他AIDL接口类型
所有Parcelable的类
bundle可传递数据类型:
1、byte/short/int/long/float/double/boolean/char等八种基本类型或它们对应的数组
2、String、charsequence或对应的数组,也可以是对象()或对象数组。
3、Bundle.putSerializable(Key,Object); //实现Serializable接口的对象
4、Bundle.putParcelable(Key, Object); //实现Parcelable接口的对象
intent可传递数据类型:
intent传递类型(abcd)
A、Serializable B、charsequence C、Parcelable D、Bundle
1、八种基本数据类型 及其对应数组
2、String/Charsequence 及其对应数组
3、Parcelable 及其对应数组 /Serializable
4、bundle/intent
相关免费学习推荐:java基础教程
Atas ialah kandungan terperinci sharedpreferences可以存储什么数据类型. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Kaedah jenis data php8 termasuk menukar rentetan kepada integer, menukar integer kepada rentetan, menukar rentetan kepada nombor titik terapung, menukar nombor titik terapung kepada rentetan, menukar tatasusunan kepada rentetan, menukar rentetan kepada tatasusunan, menukar nilai Boolean kepada integer, penukaran integer kepada Nilai boolean dan penentuan jenis pembolehubah dan penukaran. Pengenalan terperinci: 1. Menukar rentetan kepada integer termasuk fungsi intval() dan (int) penukaran jenis paksa 2. Menukar integer kepada rentetan termasuk fungsi strval() dan (rentetan) penukaran jenis paksa; rentetan kepada apungan Mata dan sebagainya.

Dalam pangkalan data MySQL, medan jantina biasanya boleh disimpan menggunakan jenis ENUM. ENUM ialah jenis penghitungan yang membolehkan kita memilih satu sebagai nilai medan daripada set nilai yang dipratentukan. ENUM ialah pilihan yang baik apabila mewakili pilihan tetap dan terhad seperti jantina. Mari lihat contoh kod tertentu: Katakan kita mempunyai jadual yang dipanggil "pengguna" yang mengandungi maklumat pengguna, termasuk jantina. Sekarang kita ingin mencipta medan untuk jantina, kita boleh mereka bentuk struktur jadual seperti ini: CRE

Dalam MySQL, jenis data yang paling sesuai untuk medan jantina ialah jenis penghitungan ENUM. Jenis penghitungan ENUM ialah jenis data yang membenarkan definisi set nilai yang mungkin Medan jantina sesuai untuk menggunakan jenis ENUM kerana jantina biasanya hanya mempunyai dua nilai, iaitu lelaki dan perempuan. Seterusnya, saya akan menggunakan contoh kod khusus untuk menunjukkan cara mencipta medan jantina dalam MySQL dan menggunakan jenis penghitungan ENUM untuk menyimpan maklumat jantina. Berikut adalah langkah-langkahnya: Pertama, buat jadual bernama pengguna dalam MySQL, termasuk

Python digunakan secara meluas dalam pelbagai bidang dengan sintaksnya yang ringkas dan mudah dibaca. Menguasai struktur asas sintaks Python adalah penting, kedua-duanya untuk meningkatkan kecekapan pengaturcaraan dan untuk mendapatkan pemahaman yang mendalam tentang cara kod tersebut berfungsi. Untuk tujuan ini, artikel ini menyediakan peta minda komprehensif yang memperincikan pelbagai aspek sintaks Python. Pembolehubah dan Jenis Data Pembolehubah ialah bekas yang digunakan untuk menyimpan data dalam Python. Peta minda menunjukkan jenis data Python biasa, termasuk integer, nombor titik terapung, rentetan, nilai Boolean dan senarai. Setiap jenis data mempunyai ciri dan kaedah operasinya sendiri. Operator Operator digunakan untuk melaksanakan pelbagai operasi pada jenis data. Peta minda merangkumi jenis operator yang berbeza dalam Python, seperti operator aritmetik, nisbah

Jenis data Python termasuk: 1. Jenis integer; 3. Nombor kompleks 5. Senarai 7. Pengenalan terperinci: 1. Jenis integer, digunakan untuk mewakili integer, yang boleh menjadi positif, negatif, atau sifar Dalam Python, julat nilai yang boleh diwakili integer adalah khusus platform 2. Jenis titik terapung, digunakan untuk mewakili nombor dengan bahagian perpuluhan.

Apabila mereka bentuk jadual pangkalan data, memilih jenis data yang sesuai adalah sangat penting untuk pengoptimuman prestasi dan kecekapan penyimpanan data. Dalam pangkalan data MySQL, sebenarnya tiada apa yang dipanggil pilihan terbaik untuk jenis data untuk menyimpan medan jantina, kerana medan jantina umumnya hanya mempunyai dua nilai: lelaki atau perempuan. Tetapi untuk kecekapan dan penjimatan ruang, kami boleh memilih jenis data yang sesuai untuk menyimpan medan jantina. Dalam MySQL, jenis data yang paling biasa digunakan untuk menyimpan medan jantina ialah jenis penghitungan. Jenis penghitungan ialah jenis data yang boleh mengehadkan nilai medan kepada set terhad.

Penjelasan terperinci tentang penggunaan jenis Boolean dalam MySQL MySQL ialah sistem pengurusan pangkalan data hubungan yang biasa digunakan Dalam aplikasi praktikal, selalunya perlu menggunakan jenis Boolean untuk mewakili nilai logik benar dan salah. Terdapat dua kaedah perwakilan jenis Boolean dalam MySQL: TINYINT(1) dan BOOL. Artikel ini akan memperkenalkan secara terperinci penggunaan jenis Boolean dalam MySQL, termasuk definisi, tugasan, pertanyaan dan pengubahsuaian jenis Boolean, dan menerangkannya dengan contoh kod tertentu. 1. Jenis Boolean ditakrifkan dalam MySQL dan boleh

Bahasa C ialah bahasa pengaturcaraan komputer yang digunakan secara meluas yang cekap, fleksibel dan berkuasa. Untuk mahir dalam pengaturcaraan dalam bahasa C, anda perlu memahami sintaks asas dan jenis datanya. Artikel ini akan memperkenalkan sintaks asas dan jenis data bahasa C dan memberi contoh. 1. Sintaks asas 1.1 Komen Dalam bahasa C, komen boleh digunakan untuk menerangkan kod untuk memudahkan pemahaman dan penyelenggaraan. Komen boleh dibahagikan kepada komen satu baris dan komen berbilang baris. //Ini ulasan satu baris/*Ini ulasan berbilang baris*/1.2 Bahasa C Kata Kunci
