मैं चाहता हूं कि मेरी भाषा गतिशील रूप से बदल जाए और मैं कॉन्फ़िगरेशन पर उपयोग करने की कोशिश कर रहा हूं लेकिन इसे नहीं कहा जा रहा है। मेरे पास मुख्य एक्टिविटी है जो मेरी एक्शन बार और व्यूअरजर बनाता है। मेरे बाकी के पेज टुकड़े हैं। मेरी सेटिंग्सफ्रेगमेंट में मेरे पास भाषा को फ्रेंच में स्विच करने के लिए एक बटन है।लोकेल: ऑन कॉन्फ़िगरेशन चेंज नहीं किया गया
langChange.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View vi) {
MainActivity main = (MainActivity)getActivity();
main.langChange();
}
});
तब मेरे MainActivity में मैं
@Override
public void onConfigurationChanged(Configuration newConfig){
super.onConfigurationChanged(newConfig);
if (locale != null){
newConfig.locale = locale;
Locale.setDefault(locale);
getBaseContext().getResources().updateConfiguration(newConfig, getBaseContext().getResources().getDisplayMetrics());
}
}
public void langChange(){
if(currentLanguage == FRENCH_LANGUAGE){
locale = new Locale("en");
Locale.setDefault(locale);
Configuration c = getBaseContext().getResources().getConfiguration();
c.locale = locale;
getBaseContext().getResources().updateConfiguration(c,getBaseContext().getResources().getDisplayMetrics());
currentLanguage = "English";
}
else if(currentLanguage == ENGLISH_LANGUAGE){
locale = new Locale("fr");
Locale.setDefault(locale);
Configuration c = getBaseContext().getResources().getConfiguration();
c.locale = locale;
getBaseContext().getResources().updateConfiguration(c,getBaseContext().getResources().getDisplayMetrics());
currentLanguage = "French";
}
actionBar.setSelectedNavigationItem(actionBar.getTabCount() - 1); //This just puts it back to the settings tab
}
onConfigurationChanged
नहीं बुलाया जा रहा है। मेरी प्रकट में मेरे पास है:
<activity android:name="MainActivity" android:screenOrientation="portrait" android:configChanges="locale"></activity>
मैं इनमें से एक या विकल्पों में से सभी में कोई सफलता के साथ orientation|keyboardHidden|screenSize
जोड़ने की कोशिश की है।
इसका कारण यह है कि मैं बटन क्लिक करने के बाद एक्शनबार टेक्स्ट और अन्य सभी टेक्स्ट को बदलना चाहता हूं। मेरे पास फ्रेंच के लिए एक अलग तार फ़ाइल है।
कोई भी मदद महान होगी।
आप कैसे जानते हैं कि 'ऑन कॉन्फ़िगरेशन चेंज' को नहीं कहा जाता है? आपके पास विधि के अंदर कोड के चारों ओर 'शून्य' के लिए एक चेक है, जो संभवतः समस्या हो सकती है। इसके अलावा इस प्रश्न पर एक नज़र डालें: http://stackoverflow.com/questions/6457659/android-onconfigurationchanged-not-being-called – Darwind
मैंने 'log.d' के साथ पहले कथन के पहले और बाद में ब्रेकपॉइंट जोड़े। मुझे पता है कि यह इस विधि को नहीं मारा है। मैंने ऊपर दिए गए प्रश्न को भी देखा है और वे उत्तर मेरे मुद्दे को हल नहीं करते हैं – BigT