[英]Launch an android application with different resource file
我有一個可以在2個版本中啟動的應用程序。
這兩個應用程序之間的主要區別是資源文件。 (某些部分已重命名,但應用程序僅處理一種語言)
是否可以在Android中使用某些特定設置在@ string / hello或R.string.hello的2個string.xml文件之間切換? 如果沒有,那么解決該問題的最佳方法是什么? 我以為如果有一些參數,我可以使用一些eclipse功能來切換xml文件...我更喜歡只有apk包,但這不是強制性的。
我無法在客戶端上更改語言...
問候
編輯
好主意阿列克斯。 我將projet重構為一個庫,並使用良好的語言環境參數啟動了它。 在那種情況下,我可以擁有3個具有良好數據庫的項目。
如果我理解正確,則希望能夠在不更改電話語言的情況下切換應用程序的語言。 我想,我可以看到一個有用的場景。
您可以嘗試做這樣的事情。
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);
}
我自己還沒有嘗試過,所以這只是一個總體思路-看看它是否對您有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.