簡體   English   中英

使用其他資源文件啟動android應用程序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM