如何在Android中的整个应用程序中进行全局更改?

时间:2012-05-15 11:29:08

标签: android global

我的应用中有一个设置菜单,用于控制整个应用中使用的单位 - 公制或美制单位。因此,当用户在菜单中的选项中选择其中一个时,我希望我的应用程序在显示和计算过程中使用所选单位。

我计划通过在sharedpreferences中存储布尔值来执行此操作,然后在每次打开活动时检查布尔值,然后进行适当的更改。

有没有更好的方法可以做到这一点?

由于

3 个答案:

答案 0 :(得分:5)

是的,您可以使用Getter和setter扩展应用程序类并将数据存储在那里。

这样您的数据将在整个应用程序中保留。

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>

修改:

您应该将扩展应用的类名添加到应用标记而非活动标记

如需进一步参考,请查看link

答案 1 :(得分:2)

您可以查看Android存储空间选项:http://developer.android.com/guide/topics/data/data-storage.html

但是,对于您的案例SharedPreferences似乎没问题

答案 2 :(得分:1)

只是一个布尔值?如果它只是一个活动,调用SharedPreferences并分配它就没问题。

如果您在应用程序中有多个活动,可以调用一次并将其加载到静态类中并以此方式调用它或subclass the Application类。

但即便如此,它只是一个布尔值,你应该做对你最方便的事情。

相关问题