2010-10-16 109 views
0

假定具有一些基於語言環境的原始資源的應用程序。但資源並不相互「相互對應」 - 一個地區的資源比另一個地區要少。應用程序在關閉時存儲它的狀態。如何檢查手機區域設置是否已更改?

因此,用戶可以在一個語言環境中啓動應用程序,關閉它(應用程序記住它的狀態),然後用戶更改電話語言環境並恢復應用程序。應用程序嘗試檢索原始資源,但失敗,因爲該原始資源中的某些信息由於其他區域設置而丟失。

問題是:如何在關閉應用程序時存儲當前的區域設置?

我知道java.util.Locale,但是我怎樣才能把Locale放入Bundle? 我可以依靠getLanguage()嗎?

回答

1

當用戶關閉應用程序時,您可以將當前區域設置信息存儲在Preference中。

以下是如何訪問當前本地示例代碼:

public class Activity() { 
    public getLocal() { 
     return getResources().getConfiguration().locale; 
    } 
} 
+0

感謝。在getResources()。getConfiguration()。locale之後,我得到一個Locale對象。 SharedPreferences編輯器允許將int/boolean/float/long或一個字符串。什麼是最準確的方法轉換語言環境(我想呢?) – zserge 2010-10-16 13:04:21

+0

有兩個部分在語言環境對象:國家和語言,我認爲,在你的情況下,你需要的是國家,所以使用Locale.getCountry( )可能正常工作。 – Tony 2010-10-16 14:53:25

+0

該方法沒有返回類型... – wseme 2014-05-27 14:26:07