首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TabActivity不会改变语言

TabActivity不会改变语言
EN

Stack Overflow用户
提问于 2011-09-19 05:07:01
回答 1查看 459关注 0票数 0

我有问题。我有带有意图标签的TabActivity。在我的应用程序中,用户可以更改首选项设置中的语言。当用户更改语言和应用程序时,返回到我的TabActivity,执行以下操作:

代码语言:javascript
复制
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode) {
    case 1:
        finish();
        startActivity(getIntent());
        break;

    default:
        break;
    }
}

这段代码可以很好地运行,因为所有的文本都是用改变过的语言编写的。

当我重新启动应用程序时出现问题。某些文本的语言不正确(使用系统默认设置)。当我再次打开首选项屏幕并返回到我的TabActivity时,所有文本都会被翻译。

重启应用程序后如何翻译所有文本?为什么当我第一次运行应用程序时,并不是所有的文本都使用正确的语言?

我为我的英语感到抱歉,我希望你能理解我的意思并帮助我。谢谢。

这是保存时来自preferenceActivity的代码:

代码语言:javascript
复制
    String lang = preferences.getString("Language", "");
    Configuration config = new Configuration();
    if (!TextUtils.isEmpty(lang))
          config.locale = new Locale(lang);
        else
          config.locale = Locale.getDefault();
    Locale.setDefault(new Locale(lang));
    getBaseContext().getResources().updateConfiguration(config, null);

tabActivity:

代码语言:javascript
复制
public class PlanActivity extends TabActivity {

SharedPreferences preferences;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setTitle(R.string.app_name);

    preferences = getSharedPreferences(Constans.PREF, Activity.MODE_PRIVATE);
    edytor = preferences.edit();

    String lang = preferences.getString("Language", "en");
    Configuration config = new Configuration();
    if (!TextUtils.isEmpty(lang))
        config.locale = new Locale(lang);
    else
        config.locale = Locale.getDefault();

    Locale.setDefault(new Locale(lang));
    getBaseContext().getResources().updateConfiguration(config, null);

     setContentView(R.layout.main);
        TabHost tabHost = getTabHost();
......... more

这段代码不能正常工作。我必须转到设置并返回tabActivity以刷新文本

EN

回答 1

Stack Overflow用户

发布于 2011-09-19 05:20:05

您是否正确地保存了对SharedPreferences对象的更改?您提供的代码没有显示您使用SharedPreferences.Editor来保存更改。

编辑:确保您在首选项活动中保存到的首选项文件与在选项卡活动(preferences = getSharedPreferences(Constans.PREF, Activity.MODE_PRIVATE);)中打开的文件相同。如果您的选项卡活动没有找到您确信保存在preferences活动中的preferences,则您的保存代码没有被调用(使用断点或日志语句进行验证),或者您保存到了错误的文件中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7464487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档