[解決済み] Androidで「アプリケーションの設定」を行うには?[クローズド]
質問
Androidアプリのアプリケーション設定(APIのURLやテスト用の設定など)を保存したいのですが、どうすればよいでしょうか?
私は主に
.NET
の開発者として働いているので、ファイル
app.config
を使うのに慣れています。Androidではどのような方法が良いのでしょうか?
どのように解決するのですか?
多くのアプリケーションは、特定のアプリケーションまたはアクティビティの設定に関するユーザーの好みを取得する方法を提供する場合があります。これをサポートするために、Android はシンプルな API のセットを提供しています。
設定は通常、名前と値のペアです。アプリケーションのさまざまなアクティビティで「共有設定」として保存できます (現在、プロセス間で共有できないことに注意してください)。または、アクティビティに固有に保存する必要があるものであることもできます。
-
共有プリファレンス。共有プリファレンスは、アプリケーションのすべてのコンポーネント(アクティビティ、サービスなど)で使用することができます。
-
アクティビティが処理する環境設定です。これらの設定はアクティビティ内でのみ使用可能で、アプリケーションの他のコンポーネントで使用することはできません。
共有の環境設定です。
共有プリファレンスの管理は
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_READABLE
と
MODE_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の データストレージ の記事をご覧ください。
関連
-
[解決済み】Android 8:クリアテキストのHTTPトラフィックが許可されない
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] AndroidでPythonを実行する方法はありますか?
-
[解決済み] アプリケーションを終了することは嫌われますか?
-
[解決済み] TextViewのリンクをクリック可能にする方法
-
[解決済み] APKファイルのリバースエンジニアリングを回避する方法
-
[解決済み] AndroidでEditTextのテキスト長を制限する最も良い方法は何ですか?
-
[解決済み】Androidアプリケーションでユーザー設定を保存する最も適切な方法は何ですか?
-
[解決済み] Android Debug Bridgeでアプリケーションのインストール時にINSTALL_FAILED_VERSION_DOWNGRADEを無視する方法はありますか?
-
[解決済み] アンドロイドボタンセレクター
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] プログラムでソフトキーボードを開く
-
[解決済み] Android Studio - あいまいなメソッド呼び出し getClass()
-
[解決済み] アプリ内課金テスト:android.test.purchased already owned
-
[解決済み] TabLayoutに対応したandroidデザインでタブテキストのフォントを変更する
-
[解決済み] アンドロイドでシェイクを検出するには?
-
[解決済み] Gradleでビルドタイプを使用し、ContentProviderを使用する同じアプリを1つのデバイスで実行する。
-
[解決済み] アンドロイドのdatepickerダイアログで最大の日付を設定するには?
-
[解決済み] 非推奨のandroid.support.v4.app.ActionBarDrawerToggleの置き換え方法
-
[解決済み] proguard hell - 参照されているクラスが見つかりません。
-
[解決済み] Androidでツールバーの戻るボタンの色を変えるには?