2017-11-18 19 views
0

のは、これがコールスタックであるとしましょう:フラグメント内のアプリケーション全体の言語を変更しますか?

Fragment2(現在位置)

Fragment1

HostingActivity

ユーザーがちょうど設定画面である(fragment2にナビゲートしました)。彼は第二の言語を選び、次にFragment1に戻る。私は、フラグメント1に入るとすぐに第2言語のコンテンツを表示することをアプリに要求します。

私は、すべてのフラグメントがOnResume()メソッド内のロケールを構成するベースフラグメントから派生するようにするのが最善の方法だと読んだことがあります。

私はこれを試みましたが、運がありません。私は何の変化も見ませんでした。 私は何か提案を聞いて開いています。

PS。私が値のフォルダにAndroidが必要とする命名規則を壊さないために、私は望みの言語を使ってエミュレータを再起動しようとしましたが、期待どおりに動作しました。

+0

'tags 'の使用がどのような違いを生み出すかは完全にはわかりません。それをさらに説明できますか? – rasperryPi

+0

を参照してください:https://stackoverflow.com/questions/38022709/android-refresh-current-fragment-after-language-change –

答えて

0

あなたはこのようCurrentCultureを設定し、基本クラスを作成し、それを継承することができます:ここ

internal class MyBaseActivity : Activity 
{ 
    protected override void OnResume() 
    { 
     base.OnResume(); 

     // Get the language from wherever. 
     var userSelectedCulture = new CultureInfo ("fr-FR"); 

     Thread.CurrentThread.CurrentCulture = userSelectedCulture; 
    } 
} 

をして、継承し、それを使用する方法である:

YorkShen-MSFT I @
public class MainActivity : MyBaseActivity 
{ 
    protected override void OnResume() 
    { 
     base.OnResume(); // Do not forget to call base.OnResume() 
     // Rest of Your Code... 
    } 
} 
+0

私はこれが活動のために働くことを知っていますが、私が言及したように - 私はこのアプローチを試みました。この作品を断片で作るのは苦労している。このメソッドをフラグメントで使用して運がありましたか? – rasperryPi

+0

この方法は断片的に機能しましたか? – rasperryPi

関連する問題