アプリ全体で使用される単位 (メートル法または米国単位) を制御する設定メニューがアプリにあります。したがって、ユーザーがメニューのオプションでこれらのいずれかを選択すると、アプリで選択した単位を表示と計算で使用する必要があります。
これを行うには、boolean を sharedpreferences に格納し、アクティビティが開かれるたびに boolean の値を確認してから、適切な変更を加える予定です。
これを行うためのより良い方法はありますか?
ありがとう
はい、Getterとsetterを使用して、Applicationsクラスを拡張し、そこにデータを保存できます。
アプリケーション全体でデータが保持されるようにします。
public class SocketManager extends Application {
private static SocketManager singleton;
public int mBluetoothState;
public synchronized static SocketManager getInstance(Context context) {
if (null == singleton) {
singleton = new SocketManager();
}
return singleton;
}
public synchronized void setState(int state) {
mBluetoothState = state;
}
public synchronized int getState() {
return mBluetoothState;
}
}
次のようなアクティビティでアクセスします。
SocketManager socketManager = SocketManager.getInstance(this);
socketManager.setState(10);
socketManager.getState();
次のようにアプリケーションをMaanifestファイルに追加します。
<application
android:name=".SocketManager"
android:icon="@drawable/first_aid"
android:label="@string/app_name" >
<activity .... />
</application>
編集 :
アプリケーションを拡張するクラス名を、アクティビティタグではなくアプリケーションタグに追加する必要があります
詳細については、このリンクを確認してください
Android ストレージ オプションを確認できます: http://developer.android.com/guide/topics/data/data-storage.html
ただし、あなたの場合SharedPreferences
は問題ないようです
ブール値だけですか?単一のアクティビティを呼び出しSharedPreferences
て割り当てるだけであれば問題ありません。
アプリケーションに複数のアクティビティがある場合は、それを1回呼び出して静的クラスにロードし、そのように呼び出すか、Applicationクラスをサブクラス化することができます。
しかし、それでもそれは単なるブール値であり、自分にとって最も便利なことは何でもする必要があります。