나는이 커뮤니티에 새로운 회원입니다. 모두에게 "안녕하세요"..... 이것은 첫 번째 질문입니다. 이것은 안드로이드 애플 리케이션 개발을 기반으로합니다. 이것이 제 질문입니다. 아직 3 가지 언어로 개발할 필요가있는 애플리케이션에서 Android 애플리케이션을 개발 중입니다.안드로이드 애플 리케이션 언어 programmaticallly을 변경하는 방법
1.English - "엉" 2.Chinese (간체) - "zh_" 3.Chinese (번체) - "의 zh_TW"
그래서 내가이 언어에 대한 문자열 리소스를 추가하고 내가 코드를 구현 하지만 불행히도 시간이 걸리지 않습니다.하지만 시간이 좀 걸립니다. 나는 내 코드의 실수를 밝힐 수 없다. 어떤 오류도없는 것 같습니다.登录
이
는- 입니다
이 登錄
public class MainActivity extends AppCompatActivity {
private Spinner spinnerctrl;
private Locale myLocale;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
spinnerctrl=(Spinner)findViewById(R.id.spinner1);
spinnerctrl.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view,
int pos, long id) {
if (pos == 1) {
Toast.makeText(parent.getContext(),
"You have selected Chinese(Simplified)", Toast.LENGTH_SHORT)
.show();
saveLocale("zh");
} else if (pos == 2) {
Toast.makeText(parent.getContext(),
"You have selected Chinese(Traditional)", Toast.LENGTH_SHORT)
.show();
saveLocale("zh_TW");
}
else if (pos == 3)
{
Toast.makeText(parent.getContext(),
"You have select English",Toast.LENGTH_SHORT)
.show();
saveLocale("en");
}
}
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
loadLocale();
@Override
public void onBackPressed()
{
Intent MyProfile = new Intent(getApplicationContext(), MainActivity.class);
startActivity(MyProfile);
finish();
}
public void loadLocale() {
String langPref = "Language";
SharedPreferences prefs = getSharedPreferences("CommonPrefs",
Activity.MODE_PRIVATE);
String language = prefs.getString(langPref, "");
changeLang(language);
}
public void changeLang(String lang) {
if (lang.equals(""))
return;
myLocale = new Locale(lang);
saveLocale(lang);
Locale.setDefault(myLocale);
Resources res = getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
conf.locale = myLocale;
res.updateConfiguration(conf, dm);
}
public void saveLocale(String lang) {
String langPref = "Language";
SharedPreferences prefs = getSharedPreferences("CommonPrefs",
Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString(langPref, lang);
editor.commit();
}}
그래서 내 prob입니다. lem.this 코드 부분은 런타임 오류없이 실행되지만 잠시 작동하지 않습니다. 왜 그런지 모르겠군요. 그래서 아무도 내가이 문제를 슬 루핑하도록 도울 수 있다면 그것은 나에게 큰 도움이됩니다. 감사합니다.
왜 문맥을 사용할 수 있습니까? – androidpc
context.getResources(); // 애플리케이션 컨텍스트에서 리소스를 가져와야한다. –