Tôi muốn ngôn ngữ ứng dụng được đặt theo tùy chọn của người dùng nhưng cho đến bây giờ nó không hoạt động như thế nào tôi muốn nó.Cài đặt ứng dụng Ngôn ngữ trong Tùy chọn Android
Tôi đã đặt giá trị mặc định: strings.xml và cũng có giá trị-es với một strings.xml bên trong tiếng Tây Ban Nha. Tôi có một tùy chọn trình đơn đưa người dùng đến một hoạt động Sở thích, nơi anh ấy có thể amon những thứ khác đã chọn ngôn ngữ.
Vì vậy, đây là một số trích đoạn code:
public class Preference extends PreferenceActivity implements
OnSharedPreferenceChangeListener {
......
// Set up a listener whenever a key changes
getPreferenceScreen().getSharedPreferences()
.registerOnSharedPreferenceChangeListener(this);
...}
//(......)
//and here I have the listener so when the language pref changes value the locale gets changed.
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
String key) {
if (key.equals("listPref2")) {
String idioma = sharedPreferences.getString("listPref2", "catala");
if ("castella".equals(idioma)) {
idioma = "es_ES";
Locale locale = new Locale(idioma);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getApplicationContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
}
}
}
Vì vậy, khi tôi thay đổi ngôn ngữ nó hoạt động nhưng sau đó khi tôi quay lại sau hoặc khởi động lại giả lập ngôn ngữ được trở về Ngôn ngữ mặc định các en_US và ngôn ngữ ứng dụng được thay đổi trở lại mặc định. Tôi có thể làm gì để sắp xếp điều đó?
Tôi biết tôi có thể nhận được tùy chọn này (mà tôi có thể truy cập từ tất cả các hoạt động của mình) và sau đó mỗi lần thiết lập miền địa phương nhưng tôi thấy nó hơi nặng không có cách nào để làm điều đó trong một cách thanh lịch?
Điều tôi muốn làm là nếu người dùng thiết lập ngôn ngữ để khi quay lại 2 ngày sau, anh ấy không phải thay đổi ngôn ngữ nữa.
Bất kỳ ý tưởng nào?
Tôi đã làm những gì bạn đã nói nhưng điều này chỉ thay đổi ngôn ngữ trong hoạt động chính. Tôi sẽ chỉ thêm cùng một mã vào đầu tất cả các hoạt động của tôi sau đó. cảm ơn – vallllll
Tôi phải thừa nhận rằng tôi chưa bao giờ thử điều địa phương. Có vẻ như nó dựa trên cài đặt người dùng. bạn đã xem cái này chưa? http://developer.android.com/resources/tutorials/localization/index.html – bytebender
có Tôi đã thiết lập ngôn ngữ mặc định và 2 ngôn ngữ: tiếng Tây Ban Nha và tiếng Anh và tôi cần người dùng có thể tự chọn ngôn ngữ. Xác định miền địa phương chỉ với điện thoại là không đủ. – vallllll