簡単に言えば、必要な API ユニットを uses 句に追加します。この場合の重要な API ユニットはAndroidApi.Jni.JavaTypes
、 、AndroidApi.Jni.App
、およびAndroidApi.Jni.GraphicsContentViewText
であり、いくつかのグルー コードと一緒に使用FMX.Helpers.Android
されます。Java の場合とほとんど同じように呼び出します。Java クラスは、頭文字が J のインターフェース型として公開されます。実際には、Android API はネストされたクラスをかなり多く使用します。Delphi はネストされたインターフェイス タイプをサポートしていないため、これらは ParentClassName_ChildClassName になります。
var
Prefs: JSharedPreferences;
Editor: JSharedPreferences_Editor;
I: Integer;
F: Single;
S: string;
begin
Prefs := SharedActivity.getPreferences(TJActivity.JavaClass.MODE_PRIVATE);
Editor := Prefs.edit;
Editor.putInt(StringToJString('MyIntKey'), 999);
Editor.putFloat(StringToJString('MyFloatKey'), 123.456);
Editor.putString(StringToJString('MyStrKey'), StringToJString('This is a test'));
Editor.apply;
I := Prefs.getInt(StringToJString('MyIntKey'), 0);
F := Prefs.getFloat(StringToJString('MyFloatKey'), 0);
S := Prefs.getString(StringToJString('MyIntKey'), StringToJString(''));
そうは言っても、私は最近、APITCustomIniFile
をラップする単純な子孫を公開しSharedPreferences
ました。詳細については、こちらを参照してください。
http://delphihaven.wordpress.com/2013/09/12/a-few-xe5-related-bits/
API を にマッピングする際TCustomIniFile
に見つけた小さな問題の 1 つは、SharedPreferences
キーが強く型付けされているという事実であり、特定のキーがどのような型を持っているかを事前に調べる方法がないようです (TCustomIniFile
対照的に、 のキーは弱く型付けされています)。 )。このため、読み取りのために、getAll
メソッドを使用してすべてのキーと値をMap
/ JMap
(つまり、Java 辞書オブジェクト) として取得し、そこから個々のキーを読み取ります。