1

アプリ全体で使用される単位 (メートル法または米国単位) を制御する設定メニューがアプリにあります。したがって、ユーザーがメニューのオプションでこれらのいずれかを選択すると、アプリで選択した単位を表示と計算で使用する必要があります。

これを行うには、boolean を sharedpreferences に格納し、アクティビティが開かれるたびに boolean の値を確認してから、適切な変更を加える予定です。

これを行うためのより良い方法はありますか?

ありがとう

4

3 に答える 3

5

はい、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>

編集 :

アプリケーションを拡張するクラス名を、アクティビティタグではなくアプリケーションタグに追加する必要があります

詳細については、このリンクを確認してください

于 2012-05-15T11:40:00.520 に答える
2

Android ストレージ オプションを確認できます: http://developer.android.com/guide/topics/data/data-storage.html

ただし、あなたの場合SharedPreferencesは問題ないようです

于 2012-05-15T11:34:01.213 に答える
1

ブール値だけですか?単一のアクティビティを呼び出しSharedPreferencesて割り当てるだけであれば問題ありません。

アプリケーションに複数のアクティビティがある場合は、それを1回呼び出して静的クラスにロードし、そのように呼び出すか、Applicationクラスをサブクラス化することができます。

しかし、それでもそれは単なるブール値であり、自分にとって最も便利なことは何でもする必要があります。

于 2012-05-15T11:39:03.113 に答える