App içinde değişen Yerel
Benim kullanıcı uygulaması içinde Yerel (İngilizce Telefon ayarları tutmak ama Fransızca benim app, Hollanda veya başka bir dil içeriğini okumak isteyebilirsiniz...) değiştirebilirsiniz
Neden bu mükemmel 1.5/1.6 iyi ama 2.0 DEĞİL artık çalışıyor ???
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case 201:
Locale locale2 = new Locale("fr");
Locale.setDefault(locale2);
Configuration config2 = new Configuration();
config2.locale = locale2;
getBaseContext().getResources().updateConfiguration(
config2, getBaseContext().getResources().getDisplayMetrics());
// loading data ...
refresh();
// refresh the tabs and their content
refresh_Tab ();
break;
case 201: etc...
Sorun MENÜ "" daha fazla ve daha fazla her kullanıcı satır kod sayesinde, yukarıda.. küçülür
Bu daralmış alır Menüsü:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, 100, 1, "REFRESH").setIcon(android.R.drawable.ic_menu_compass);
SubMenu langMenu = menu.addSubMenu(0, 200, 2, "NL-FR").setIcon(android.R.drawable.ic_menu_rotate);
langMenu.add(1, 201, 0, "Nederlands");
langMenu.add(1, 202, 0, "Français");
menu.add(0, 250, 4, R.string.OptionMenu2).setIcon(android.R.drawable.ic_menu_send);
menu.add(0, 300, 5, R.string.OptionMenu3).setIcon(android.R.drawable.ic_menu_preferences);
menu.add(0, 350, 3, R.string.OptionMenu4).setIcon(android.R.drawable.ic_menu_more);
menu.add(0, 400, 6, "Exit").setIcon(android.R.drawable.ic_menu_delete);
return super.onCreateOptionsMenu(menu);
}
Ben API Seviye 5'te tekrar çalışması için ne yapmalıyım ?
BURADA İSE BU TEST ETMEK İSTİYORSANIZ, TAM KODU :
import java.util.Locale;
import android.app.Activity;
import android.content.res.Configuration;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
import android.widget.Toast;
public class Main extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
SubMenu langMenu = menu.addSubMenu(0, 200, 2, "NL-FR").setIcon(android.R.drawable.ic_menu_rotate);
langMenu.add(1, 201, 0, "Nederlands");
langMenu.add(1, 202, 0, "Français");
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case 201:
Locale locale = new Locale("nl");
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
Toast.makeText(this, "Locale in Nederlands !", Toast.LENGTH_LONG).show();
break;
case 202:
Locale locale2 = new Locale("fr");
Locale.setDefault(locale2);
Configuration config2 = new Configuration();
config2.locale = locale2;
getBaseContext().getResources().updateConfiguration(config2, getBaseContext().getResources().getDisplayMetrics());
Toast.makeText(this, "Locale en Français !", Toast.LENGTH_LONG).show();
break;
}
return super.onOptionsItemSelected(item);
}
}
VE İŞTE ORTAYA :
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.cousinHub.ChangeLocale"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Main"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="3" />
</manifest>
BU NE BULDUM
<uses-sdk android:minSdkVersion="5" />
=>GAYET GÜZEL ÇALIŞIYOR ...
<uses-sdk android:minSdkVersion="3" />
=>Menü küçülür yerel değişim her zaman !!!
başvurum 1.5, ne yapmalıyım ?? kullanıcılar için erişilebilir olmasını istediğim gibi
CEVAP
Asıl soruya tam olarak yerel kendisi hakkında değil, tüm diğer yerel ile ilgili sorular bu bir referans. Bu konuya burada açıklık getirmek istedim. Kendi yerel kod geçiş için bir başlangıç noktası olarak bu soruyu kullandım ve bu yöntem tam olarak doğru olmadığını öğrendim. Çalışır, ama belirli bir aktivitede herhangi bir yapılandırma değişikliği (örneğin ekran döndürme) kadar sadece ve sadece. Aşağıdaki yaklaşım ile sona erdi ben bir süre için bir kod ile oynamak:
Genişletilmiş android var.app.Uygulama ve ekledi:
public class MyApplication extends Application
{
private Locale locale = null;
@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());
}
}
@Override
public void onCreate()
{
super.onCreate();
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
Configuration config = getBaseContext().getResources().getConfiguration();
String lang = settings.getString(getString(R.string.pref_locale), "");
if (! "".equals(lang) && ! config.locale.getLanguage().equals(lang))
{
locale = new Locale(lang);
Locale.setDefault(locale);
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
}
}
}
Bu kodu her Faaliyet özel ayar ve sıfırlama olmayacaktır set rotasyon ve diğer olaylar olanağına sahip olur.
Ben de harcanan bir sürü zaman kazanmaya çalışıyorum tercihini değiştirmek için uygulanan hemen ama olmadı başarılı: dil değişti doğru Etkinliği yeniden, ama sayı biçimleri ve diğer yerel özellikleri değildi uygulanan kadar tam uygulamasını yeniden başlatın.
UYARI: AndroidManifest her aktivite için android:configChanges="layoutDirection|locale"
eklemeyi unutma. İşe yaramıyor bu yöntem ve bu değişiklik olmadan çalıştım.
HTML kullanarak ve Yerel Görüntüleri U...
İOS 7 içinde değişen Geri düğmesini ka...
Arama "yerel" modül içinde f...
Nasıl bir yerel kütüphane paket ve bir...
En iyi yolu belirlemek için Kullanıcı&...