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 サイトの他の関連記事を参照してください。

この記事では、さまざまなJava Garbage Collectionアルゴリズム(シリアル、パラレル、CMS、G1、ZGC)、そのパフォーマンスへの影響、および大きなヒープを持つアプリケーションの適合性について説明します。

この記事では、Java Virtual Machine(JVM)について説明し、さまざまなプラットフォームでJavaプログラムを実行する際の役割について詳しく説明しています。 JVMの内部プロセス、主要コンポーネント、メモリ管理、ガベージコレクション、およびパフォーマンスの最適化について説明します

Javaのナショーンエンジンは、Javaアプリ内でJavaScriptスクリプトを可能にします。重要な手順には、ナショーンのセットアップ、スクリプトの管理、パフォーマンスの最適化が含まれます。主な問題には、ナショーンのdeprecによるセキュリティ、記憶管理、将来の互換性が含まれます

Javaのリソースでの試行は、ファイルストリームやデータベース接続などのリソースを自動的に閉じることでリソース管理を簡素化し、コードの読みやすさと保守性を向上させます。

Java Enumsは、固定された値のセットを表し、カスタムメソッドとコンストラクターを介してタイプの安全性、読みやすさ、および追加の機能を提供します。それらはコード組織を強化し、効率的なバリューハンドリングのためにスイッチステートメントで使用できます。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

メモ帳++7.3.1
使いやすく無料のコードエディター

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