2012-05-15 39 views
1

我有我的應用程序設置菜單控制整個應用程序中使用的單位 - 公制或英制單位。所以當用戶在菜單中的選項中選擇其中的一個時,我希望我的應用程序在整個顯示和計算中使用所選單位。如何在Android中對我的應用程序進行全局更改?

我打算通過存儲sharedpreferences一個布爾值,要做到這一點,然後檢查布爾活動開啓,每次的值,然後進行相應的更改。

是否有更好的方法去這樣做呢?

感謝

+0

sharedpreferences是我能想到的......而你可以保持一個布爾值在應用程序類的唯一選項(從應用程序擴展)和更新它每次你打開你的主要活動。該標誌可用於各種活動。 – Tarun

+0

無需共享代碼。這個人只是保存一個布爾值 – user1378730

回答

4

是的,您可以擴展應用程序類並使用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> 

編輯:

你應該添加你的類名將應用程序擴展到應用標籤沒有活動標記

爲了進一步refrence檢查這個link

+0

如果應用程序有多個活動,則工作正常。 – user1378730

+0

這似乎是一個很好的方法,如果我想存儲多個數據值。如果應用程序進程被終止,這是否工作?即使在整個應用程序關閉後,我仍然需要保存我的設置。 – ask

+0

您的應用程序仍在卸載,您可以保留數據。 – Venky

1

對於剛剛一個布爾值?如果它只是一個調用SharedPreferences並分配它的活動就沒有問題。

如果在一個應用程序的多個活動,你可以調用它一次,它加載到一個靜態類,並調用它的方式或subclass the Application類。

但即使如此,它只是一個布爾值,你應該做的一切是您最方便的。

+0

編輯我的答案應該是如何。 – user1378730

相關問題