我的应用中有一个设置菜单,用于控制整个应用中使用的单位 - 公制或美制单位。因此,当用户在菜单中的选项中选择其中一个时,我希望我的应用程序在显示和计算过程中使用所选单位。
我计划通过在sharedpreferences中存储布尔值来执行此操作,然后在每次打开活动时检查布尔值,然后进行适当的更改。
有没有更好的方法可以做到这一点?
由于
答案 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类。
但即便如此,它只是一个布尔值,你应该做对你最方便的事情。