SharedPreferences は単純なタイプのデータのみを保存でき、string、int、float、long、boolean データ タイプのみを保存できます。クラスや画像などのより複雑なデータ型にアクセスする必要がある場合は、データをエンコードする必要があります。
このチュートリアルの動作環境: Windows7 システム、Java10 バージョン、Dell G3 コンピューター。
日々の開発では、データを保存する必要があることがよくあります。Android で一般的に使用される保存方法には、SQLite、sharedPreferences などが含まれます。もちろん、独自のアプリケーション シナリオもあります。前者は、より多くのデータを保存するのに適しており、特定のチェックボックスの選択状態、ユーザーのログイン状態、設定情報、パスワードを記憶する機能などのユーザー設定を保存するために、ファイルはキーと値のペアの形式で読み取られます。
しかし、データを保存するたびにキーを指定する必要があります。複数のデータを保存したい場合、複数のキーを記述する必要はありませんか?たとえば、ユーザーのニックネーム、個人の署名、ログイン時間などのユーザーのログイン情報を保存したいとします... ニーマ、データを 1 つ書き込めば、ルオのゲームがプレイできるのです。とにかく、我慢できません。そこで、ユーザー情報をカプセル化して 1 つのキーで保存するのはどうでしょうか?答えは「はい」です~
Java クラス ライブラリで提供されるバイト入力および出力ストリームを使用すると、任意の型から String への可逆変換を簡単に完了でき、それを Share~
SharedPreferences に保存できます。 4 つの基本タイプ (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);
ストレージ オブジェクト:
方法 1: fastJson/Gson/Jackson はオブジェクトを文字列に変換して保存します。
方法 2: 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 を使用してリスト データを保存します。実際、オブジェクト オブジェクトを保存できます
Android 開発ノート - SharedPreferences はエンティティ クラスと任意の型を保存します
Android データ永続性 SharedPreference
AIDL でサポートされるデータ型
すべての基本型 (byte/short/int/long/float/double/boolean/char など) .)
- #String、List、Map、CharSequence およびその他のクラス
- その他の AIDL インターフェイス タイプ
- すべての Parcelable クラス
##インテントの渡せるデータ型:
インテント配信タイプ (abcd)
A、シリアル化可能 B. 文字シーケンス C. パーセル可能 D. バンドル
1、8 つの基本データ型とその対応する配列
2、文字列/文字列とその対応する配列
3、Parcelable とそれに対応する配列/Serializable
4、バンドル/インテント
## 関連する無料学習 推奨:
以上が共有設定ではどのようなデータ型を保存できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

ドリームウィーバー CS6
ビジュアル Web 開発ツール

ホットトピック









