이 설정 섹션에서 사용자가 앱에 표시되는 언어를 변경할 수 있도록 허용합니다. 사용자가 다른 언어를 선택하면 언어 변경이 적용될 수 있도록 활동이 다시로드됩니다. 그러나 문제는 사용자가 언어를 변경 한 직후에 다시 클릭하면 배경 활동에 표시된 언어가 여전히 동일하다는 것입니다. 제 질문은, 백그라운드에서 어떤 활동으로 돌아 가면 언어 변경을 적용하려면 어떻게해야합니까? 내가 onResume
메서드의 변경을 감지하기 위해 뭔가를해야한다고 생각하지만, 그것이 무엇인지는 잘 모르겠습니다. 제안 사항이 있으면 알려주십시오. 감사합니다.Android - 뒤로 클릭 할 때 언어 변경
답변
여러 번 시도해 본 결과 내 문제의 해결책을 찾았습니다. 내 onCreate
방법, 나는 현재 언어의 값을 포함하는 SharedPreferences
을 얻고, 현재 언어를 얻을 :
SharedPrefrences languagepref = getSharedPreferences("language",MODE_PRIVATE);
String language = languagepref.getString("languageToLoad", Locale.getDefault().getDisplayLanguage());
그런 다음 내 onResume
방법, 나는 지역에 변수 language
언급 한 위의 값을 할당 변수를 선택하고 language
값을 업데이트하십시오.
@Override
public void onResume(){
super.onResume();
String oldLanguage = language;
language = languagepref.getString("languageToLoad", Locale.getDefault().getDisplayLanguage());
if (!oldLanguage.equals(language)){
finish();
startActivity(getIntent());
}
}
을 그리고 속임수를 썼는지 짜잔 : 서로 다른 경우, 나는 현재 활동을 파괴하고 또 다른 시작됩니다 - 그럼이 두 변수를 비교!
나는 SharedPreferences를 사용하도록 제안합니다. 관련 값이있는 lang 키를 거기에 저장하고 필요할 때 업데이트 할 수 있습니다. onResume() 메서드에서 lang 값을 가져온 다음 저장된 값에 따라 뷰를 채울 수 있습니다.
SharedPreferences sharedPreferences;
sharedPreferences = this.getSharedPreferences("MyActivity", Activity.MODE_PRIVATE);
String lang = sharedPreferences.getString("lang", "en-GB");
SharedPreferences.Editor editor;
editor = sharedPreferences.edit();
editor.putString("lang", "en-US").commit();
기본 사항은 다음과 같습니다.
고맙습니다. 배경 활동에서의 변화. –
보기를 만들고 텍스트를 어디에 설정합니까? –
변경 작업을 완료 한 후 활동을 다시 시작하려고 시도 했습니까?
당신은 단순히 환경 설정의 변화를 감지 할 때마다 작업을 새로
finish();
startActivity(getIntent());
를 사용할 수 있습니다.
'onResume'에서 활동을 새로 고침한다고 생각하십니까? 잘 시도해 보았습니다. 끝내고 시작하는 무한 루프 때문에 활동이 거의 시작될 수 없습니다. –
저장된 변수가 없으면'onCreate (null); '을 사용할 수 있습니다. 다시 활동을 재개해야합니다. – Traxex1909
- 1. Android : 언어 변경 ubll
- 2. Android 변경 언어 날짜
- 3. Android 앱에서 언어 변경
- 4. 뒤로 버튼 동작 변경 - Android
- 5. Android : 프로그래밍 방식으로 언어 변경
- 6. Android : 뒤로 버튼의 동작 변경
- 7. 프로그래밍 할 때 응용 프로그램 언어 변경
- 8. 클릭 할 때 버튼 배경 변경 (xml)
- 9. Android SDK 버튼을 클릭 할 때 텍스트 변경
- 10. Android - 변경 실행기 아이콘 언어
- 11. 뒤로 버튼을 클릭 할 때까지 카메라가 열리지 않습니다. - android
- 12. Spinner를 클릭 할 때 어댑터 변경
- 13. 탭을 클릭 할 때 배경색 변경
- 14. Libgdx : 클릭 할 때 ImageButton 이미지 변경
- 15. jQuery로 링크를 클릭 할 때 텍스트 변경
- 16. 단추를 클릭 할 때 단추의 drawableLeft 변경
- 17. 단추를 클릭 할 때 레이블 텍스트 변경
- 18. 목록 항목을 클릭 할 때 동작 변경
- 19. 버튼을 클릭 할 때 Element.attr 변경
- 20. 제품을 클릭 할 때 표시되는 내용 변경
- 21. 버튼을 클릭 할 때 탭 색상 변경
- 22. 버튼을 클릭 할 때 키 값 변경
- 23. 클릭 할 때 div 위치 지정 변경
- 24. 클릭 할 때 div 그룹의 색상 변경
- 25. 클릭 할 때 div id 변경
- 26. 이미지를 클릭 할 때 배경 이미지 변경
- 27. 버튼을 클릭 할 때 마커 이미지 변경
- 28. 문서는 뒤로 버튼을 클릭
- 29. 브라우저의 뒤로 버튼을 클릭 할 때 세션을 가져올 수 없습니다.
- 30. 네비게이션 컨트롤러에서 뒤로 버튼을 클릭 할 때 호출되는 메소드는 무엇입니까?
ActivityDource에서 ** onResume ** 메서드를 듣거나 ** ActivitySource에서 ** onBackPressed ** **를 수신하십시오. –
finish()를 사용하여 이전 액티비티로 돌아가려면 인 텐트를 사용하여 새로운 언어로 이전 작업을 새로 고칩니다. – user1283633