如果我理解正確,您希望能夠在不改變手機語言的情況下切換應用程序的語言。我想,我可以看到一個可能有用的場景。
你可以嘗試做這樣的事情。
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);
}
我還沒有嘗試過這個自己,所以這只是一個一般的想法 - 看看它是否工作爲你。