2012-02-06 126 views
0

我有一個應用程序可以在2個版本中啓動。使用不同的資源文件啓動android應用程序

2應用程序的主要區別是資源文件。 (有些部分被重命名,但應用程序只能處理一種語言)

是否可以在android string中使用@ string/hello或R.string.hello在2個strings.xml文件之間進行切換?如果不是的話,那麼這個問題最好的辦法是什麼?我想如果有一些參數,我可以使用一些eclipse功能來切換xml文件...我更喜歡只有apk包,但它不是強制性的。

我不能更改客戶端上的語言......

問候

編輯

好主意阿萊克斯。我將projet重構爲一個庫,並以良好的語言環境參數啓動它。在那種情況下,我可以用良好的數據庫進行3個不同的項目。

回答

1

如果我理解正確,您希望能夠在不改變手機語言的情況下切換應用程序的語言。我想,我可以看到一個可能有用的場景。

你可以嘗試做這樣的事情。

1)使用多個字符串資源構建您的應用程序,就像您支持多個語言環境/語言一樣。

2)在您的清單,添加configChanges="locale"到你的活動:

<activity android:name=".Main" android:configChanges="locale" android:label="@string/app_name" /> 

3)第一次應用程序啓動時,將在客戶端手機的語言。當用戶更改應用程序中的語言時,請以您喜歡的任何方式(sqlite,文件,應用程序包等)保存新語言,並強制重新啓動應用程序。

4)當你的應用程序啓動時,檢索保存的語言並設置爲默認語言環境吧:

@Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
     //load saved language 
     String languageToUse = ... 
     if(languageToUse != null) 
     { 
      Locale locale = new Locale(languageToLoad); 
      Locale.setDefault(locale); 
      Configuration config = new Configuration(); 
      config.locale = locale; 
      getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics()); 
     } 
     this.setContentView(R.layout.main); 
    } 

我還沒有嘗試過這個自己,所以這只是一個一般的想法 - 看看它是否工作爲你。