2013-07-05 4 views
0

응용 프로그램의 언어를 선택하는 데 사용되는 스플래시 화면을 만드는 방법이 있습니까? 이제 SetLocale 메서드를 사용하고 있지만 전체 응용 프로그램을 다시 시작해야합니다. 런타임에 언어를 변경하는 방법이 있습니까?언어 선택을위한 Android - 스플래시 화면

당신은 응용 프로그램을 다시 시작하지만, 그냥 (로케일을 설정 한 후, 새로운 하나를 입력, 귀하의 경우, 또는) 당신이 선택한 후, 아래의 메소드를 호출하는 활동을 "다시"하지 않을 수 있습니다

답변

0

들으 언어를 스플래시 화면에 표시합니다.

public static void reload(Activity activity) { 
    Intent intent = activity.getIntent(); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); 
    activity.finish(); 
    activity.overridePendingTransition(0, 0); 
    activity.startActivity(intent); 
    activity.overridePendingTransition(0, 0); 
} 

내가 출구와 "재활용"활동의 진입 모두 애니메이션을 잘라하려는 경우 모두 필요한 것을 찾을 수 있기 때문에 두 overridePendingTransition(0, 0)이된다. 또한 ICS와 JB 사이의 동작이 다르기 때문에 이중화도 남겨 두었습니다 setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION).

(나는 어둠과 가벼운 홀로의 테마 전환을 "즉시"적용하기 위해 위의 방법을 사용합니다).

편집 :이 방법을 사용하는 활동에서, 매니페스트에

android:configChanges="locale|orientation|screenSize|keyboard|keyboardHidden" 

포함

locale = new Locale(param0, param1); 
Locale.setDefault(locale); 
Configuration config = new Configuration(); 
config.locale = locale; 

:

어쨌든

, 나는 같은 것을 사용 로케일을 변경할 수 있습니다.

원하는 경우 모든 onCreate(...) 내 응용 프로그램의 로케일을 초기화하는 데 사용하는 전체 방법으로 소스를 게시 (또는 링크) 할 수 있습니다. 기본 설정에 저장된 로켈을 강제로 사용하는 데 사용됩니다 (기본 설정으로 되돌아갑니다).

관련 문제