2014-09-01 3 views
2

나는 files-values-ar, values-fr에 string.xml을 가지고 있으며, 그 중 하나에서 문자열 값을 수동으로 가져 오려고합니다. 예를 들어 는 :지정한 파일에서 문자열을 가져 오는 방법을 안드로이드에게 묻는 방법은 무엇입니까?

R.string-ar.... 
R.string-fr.... 

나는 시스템이 시스템 언어 또는 응용 프로그램 언어에 따라 문자열을 검색 할 것을 알고있다. 하지만 시스템 또는 앱 언어에 관계없이 지정된 파일에서 문자열을 가져 오려고합니다. 여기

+0

난 당신이 다음 얻을 FR 또는 AR로 로케일을 설정하는 생각이 호출 할 필요가 그렇지 않으면 XML 값 -xx 파일을 직접 파싱해야한다고 생각합니다. – Yazan

+0

아니요 내 앱에서 로컬로 전환하고 싶지 않습니다. – david

+1

비효율적 일 수 있습니다. 로컬 변경은 다시로드되거나 앱이 다시 시작되지 않는 한보기 (활동)에 영향을 미치지 않으므로 로케일 가져 오기 값을 설정하고 첫 번째 로케일로 롤백 한 다음 계속 진행하십시오 – Yazan

답변

0

당신이 프로그래밍 로케일을 변화

Locale current = getResources().getConfiguration().locale; 

Locale newlocale = new Locale("fr"); 
setLocale(newlocale); 
String value = getResources().getString(R.string.username);//fr string 
setLocale(current); 


public void setLocale(Locale locale){ 
Locale.setDefault(locale); 
Configuration config = new Configuration(); 
config.locale = locale; 
getBaseContext().getResources().updateConfiguration(config, 
     getBaseContext().getResources().getDisplayMetrics()); 
} 
+0

편집 됨, Locale.setDefault (locale); 함수의 첫 번째 줄 newlocale (잘못) – Yazan

+0

Yazan 내 질문 좀 봐 줄래? http://stackoverflow.com/questions/25566116/android-spanned-text-while-deleting-smiles-shows-text –

+0

답변 해 주셔서 감사합니다. – david

0

이동,하지만 당신은 모든 활동에서 onCreate

Resources res = context.getResources(); 
// Change locale settings in the app. 
DisplayMetrics dm = res.getDisplayMetrics(); 
android.content.res.Configuration conf = res.getConfiguration(); 
conf.locale = new Locale(language_code.toLowerCase()); 
res.updateConfiguration(conf, dm); 
관련 문제