私は と を持っSplashActivity
てMainActivity
おり、デフォルトのデバイス言語は英語です。ではSplashActivity
、アプリケーションのデフォルト言語を vi (ベトナム語) に変更します。以下のコードで示した SplashActivity から MainActivity に移動する 2 つの方法を使用しています。
私は何度も非常に注意深くテストしましたが、まだこの問題を知りません
。
public class SplashActivity extends Activity {
...
protected void onCreate(Bundle savedInstanceState) {
...
changeDefaultLanguageConfigLanguage("vi");
moveToMain();
...
}
private void changeDefaultLanguageConfigLanguage(String language) {
Configuration config = new Configuration();
Locale locale = new Locale(language);
Locale.setDefault(locale);
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
}
public void moveToMain() {
/*
Way 1: The language in MainActivity change
*/
Intent mainIntent = new Intent(SplashActivity.this, MainActivity.class);
context.startActivity(mainIntent);
/*
Way 2: The language in MainActivity don't change
*/
new Handler().postDelayed(new Runnable() {@
Override
public void run() {
Intent mainIntent = new Intent(SplashActivity.this, MainActivity.class);
startActivity(mainIntent);
//finish();
//overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
}
}, 3000);
}
}
AndroidManifest.xml
<activity
android:name=".SplashActivity"
android:label="@string/title_activity_splash"
android:configChanges="orientation|keyboardHidden" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".MainActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/title_activity_main" >
</activity>