1. ホーム
  2. android

[解決済み] Androidで「アプリケーションの設定」を行うには?[クローズド]

2022-10-04 18:08:01

質問

Androidアプリのアプリケーション設定(APIのURLやテスト用の設定など)を保存したいのですが、どうすればよいでしょうか?

私は主に .NET の開発者として働いているので、ファイル app.config を使うのに慣れています。Androidではどのような方法が良いのでしょうか?

どのように解決するのですか?

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

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

  1. 共有プリファレンス。共有プリファレンスは、アプリケーションのすべてのコンポーネント(アクティビティ、サービスなど)で使用することができます。

  2. アクティビティが処理する環境設定です。これらの設定はアクティビティ内でのみ使用可能で、アプリケーションの他のコンポーネントで使用することはできません。

共有の環境設定です。

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

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

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

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

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

SharedPreferences preferences = PreferenceManager.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の データストレージ の記事をご覧ください。