2016-06-18 5 views
0

사용자가 시스템 로케일을 미국에서 중국으로 변경할 때. 내 앱에서 영어를 중국어로 변경하고 싶지는 않지만 내 앱의 언어는 영어로 유지됩니다.내 app에서 로케일 변경을 비활성화하는 android 속성이 있습니까

AndroidManifest.xml에 android 속성을 설정하여이 작업을 수행 할 수 있습니까?

감사

당신은 당신의 요구 사항에 따라 로케일을 유지하기 위해 코드 아래 사용할 수 있습니다
+1

다른 로케일에 대체 strings.xml을 제공하지 않으면 응용 프로그램 언어가 변경되지 않습니다. –

+0

예. 그렇지만 내 응용 프로그램은 strings.xml을 제공합니다. 나는 그들을 제거하고 싶지 않다. 이것이 이상한 요구 사항이라고 생각합니다. –

+0

이것이 필요한가요? http://stackoverflow.com/questions/4985805/set-locale-programatically – Emran

답변

0

, 내가 한 번 이렇게하고 응용 프로그램 클래스에 코드를 넣어 더 좋을 거라 생각

Locale locale = new Locale("en"); 
    Locale.setDefault(locale); 
    Configuration config = new Configuration(); 
    config.locale = locale; 
    getBaseContext().getResources().updateConfiguration(config, 
    getBaseContext().getResources().getDisplayMetrics()); 
+0

Vickyexpert에게 감사드립니다. androidManifest.xml에서이 작업을 수행 할 수 있다면 완벽 할 것이라고 생각합니다. –

0

public class MyApplication extends Application { 

    @Override 
    protected void attachBaseContext(Context base) { 
     Resources res = base.getResources(); 

     Locale locale = new Locale("en"); 
     Locale.setDefault(locale); 

     Configuration config = new Configuration(); 
     config.locale = locale; 

     res.updateConfiguration(config, res.getDisplayMetrics()); 

     super.attachBaseContext(base); 
    } 
} 
관련 문제