0

基本的に、スカウトのタスクを支援するメモ帳のような FIRST ロボティクス用のアプリケーションを作成しています。これまでのところ、チームの名前とそのチームに関するコメントをデータベースに保存し、リストから再度アクセスすることができました。ただし、スピナーを実装して、ユーザーが特定のチームに関する基調講演をすばやく効率的に行えるようにしたいと考えています。選択した値をデータベースに保存し、メモを再度開いたときにそれを取得するにはスピナーが必要ですが、これをどのように行うべきか途方に暮れています。助言がありますか?

4

1 に答える 1

0

多くのアプリケーションは、特定のアプリケーションまたはアクティビティの設定に関するユーザー設定をキャプチャする方法を提供する場合があります。これをサポートするために、AndroidはAPIのシンプルなセットを提供します。

プリファレンスは通常、名前と値のペアです。これらは、アプリケーションのさまざまなアクティビティ間で「共有設定」として保存できます(現在、プロセス間で共有することはできません)。または、アクティビティに固有に保存する必要があるものにすることもできます。

  1. 共有設定:共有設定は、アプリケーションのすべてのコンポーネント(アクティビティ、サービスなど)で使用できます。

  2. アクティビティで処理される設定:これらの設定は、アクティビティでのみ使用でき、アプリケーションの他のコンポーネントでは使用できません。

共有設定:

共有設定は、クラスのgetSharedPreferencesメソッドを使用して管理されます。Contextプリファレンスはデフォルトのfile(1)に保存されます。または、プリファレンスを参照するために使用するファイル名(2)を指定できます。

(1)ファイル名を指定した場合のインスタンスの取得方法は次のとおりです。

public static final String PREF_FILE_NAME = "PrefFile";
   SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE);

MODE_PRIVATEプリファレンスの動作モードです。これはデフォルトのモードであり、作成されたファイルには呼び出し元のアプリケーションのみがアクセスすることを意味します。MODE_WORLD_READABLEサポートされている他の2つのモードはとですMODE_WORLD_WRITEABLE。他MODE_WORLD_READABLEのアプリケーションでは、作成されたファイルを読み取ることはできますが、変更することはできません。他のアプリケーションの場合MODE_WORLD_WRITEABLEも、作成されたファイルに対する書き込み権限があります。

(2)推奨される方法は、ファイル名を指定せずにデフォルトモードで使用することです。

SharedPreferences preferences = PreferencesManager.getDefaultSharedPreferences(context);

最後に、プリファレンスインスタンスを取得したら、プリファレンスから保存された値を取得する方法を次に示します。

 int storedPreference = preferences.getInt("storedInt", 0);

設定ファイルにを保存するには、SharedPreference.Editorオブジェクトを使用する必要があります。クラスEditorのネストされたインターフェイスです。SharedPreference

SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();

エディタは、ファイルから設定値を削除するremove()などのメソッドもサポートしています。clear()

アクティビティ設定:

共有設定は、他のアプリケーションコンポーネントで使用できます。ただし、設定を他のコンポーネントと共有する必要がなく、アクティビティをプライベート設定にしたい場合。あなたはgetPreferences()活動の方法の助けを借りてそれを行うことができます。このgetPreferenceメソッドはgetSharedPreferences()、プリファレンスファイル名にアクティビティクラスの名前を持つメソッドを使用します。

以下は、設定を取得するためのコードです

SharedPreferences preferences = getPreferences(MODE_PRIVATE);
int storedPreference = preferences.getInt("storedInt", 0);

値を保存するコードも、共有設定の場合と同じです。

SharedPreferences preferences = getPreference(MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();

アクティビティ状態をデータベースに保存するなど、他の方法を使用することもできます。注Androidには、と呼ばれるパッケージも含まれていますandroid.preference。このパッケージは、アプリケーション設定UIを実装するためのクラスを定義します。

その他の例を確認するには、開発者サイトにあるAndroidのデータストレージの投稿を確認してください。

于 2011-03-09T20:53:44.327 に答える