如何改变我所有的活动(按钮文本,textviews等)与点击事件的所有文本



我可以改变所有的文本在我的应用程序到其他文本,当我点击一个按钮或选择一个菜单项?

我实际上想做的是让我的应用程序翻译成几个非iso语言("非iso"意味着我无法在wiki的ISO-639列表中找到它们)。

所以我希望用户能够选择他们查看我的应用的语言,不管他们的手机语言设置是什么。我希望他们能够从应用程序中进行语言选择。

我在strings.xml中有所有的英文按钮和textview文本,我可以为新语言创建一个strings-xx.xml。

我将使用列出语言选项的子菜单。文本改变会响应那个菜单上的onclick事件。

摘自:当用户选择语言时如何更改应用程序的语言?

public void setLocale(String lang) { 
    myLocale = new Locale(lang); 
    Resources res = getResources(); 
    DisplayMetrics dm = res.getDisplayMetrics(); 
    Configuration conf = res.getConfiguration(); 
    conf.locale = myLocale; 
    res.updateConfiguration(conf, dm); 
    Intent refresh = new Intent(this, YOURACTIVITY.class); 
    startActivity(refresh); 
    finish();
} 

你可以将任何有效的语言字符串传递给setLocale方法,比如"de"或"it",但是你必须重新启动Activity。

我不知道如果你按下后退键,你的应用程序会如何表现。如果它启动了你的"旧"活动,试着重新启动你的活动:

public void setLocale(String lang) { 
    myLocale = new Locale(lang); 
    Resources res = getResources(); 
    DisplayMetrics dm = res.getDisplayMetrics(); 
    Configuration conf = res.getConfiguration(); 
    conf.locale = myLocale; 
    res.updateConfiguration(conf, dm); 
    Intent refresh = new Intent(this, YOURACTIVITY.class);
    refresh.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
    startActivity(refresh); 

}

最新更新