在仍然使用Android资源的情况下,是否可以通过编程方式更改应用程序的语言?

如果没有,是否可以以特定语言请求资源?

我想让用户改变应用程序的语言从应用程序。

嗝屁嗝屁提问于
无畏魂者如果对生活没有动力,那和三和大神有几分差别回答于

如果你想改变你的应用程序的语言,你必须做两件事。

首先,创建一个基本活动并使你的所有活动都从以下内容扩展:

public class BaseActivity extends AppCompatActivity {

    private Locale mCurrentLocale;

    @Override
    protected void onStart() {
        super.onStart();

        mCurrentLocale = getResources().getConfiguration().locale;
    }

    @Override
    protected void onRestart() {
        super.onRestart();
        Locale locale = getLocale(this);

        if (!locale.equals(mCurrentLocale)) {

            mCurrentLocale = locale;
            recreate();
        }
    }

    public static Locale getLocale(Context context){
        SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);

        String lang = sharedPreferences.getString("language", "en");
        switch (lang) {
            case "English":
                lang = "en";
                break;
            case "Spanish":
                lang = "es";
                break;
        }
        return new Locale(lang);
    }
}

请注意,我将新语言保存在sharedPreference中。

其次,创建一个应用程序的扩展,如下所示:

    public class App extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        setLocale();
    }

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        setLocale();
    }

    private void setLocale() {

        final Resources resources = getResources();
        final Configuration configuration = resources.getConfiguration();
        final Locale locale = getLocale(this);
        if (!configuration.locale.equals(locale)) {
            configuration.setLocale(locale);
            resources.updateConfiguration(configuration, null);
        }
    }
}

getLocale()与上面相同。

回答过的其他问题

自己拥有一台云服务器能做什么有趣的事?

无畏魂者如果对生活没有动力,那和三和大神有几分差别

使用云服务器存储数据有哪些好处?

无畏魂者如果对生活没有动力,那和三和大神有几分差别
可用性和可访问性 用户可以轻松地将文件拖放到云硬盘中。将所有文件和数据保存在云服务器中很容易,不需要任何技术知识。只需点击几下鼠标,即可在世界任何地方轻松访问存储的文件。 安全 数据存储在云服务器中,是安全的。使用云服务器存储数据的最佳方式是,将服务器数据分布在冗余服务器上,保...... 展开详请

腾讯云是如何推动轨道交通智能化升级的?

无畏魂者如果对生活没有动力,那和三和大神有几分差别
神州高铁在轨道交通产业的资源及积累,与腾讯云计算的大数据存储、挖掘、应用技术联合开展大数据技术在管道业务、云平台业务、信息化业务的合作研究及项目落地。利用腾讯云计算大数据处理能力,对轨道交通行业海量数据进行存储、分析和处理,挖掘数据内部运营价值与商业价值,构建行业专业信息化系统,...... 展开详请

怎么用腾讯云做生意?

无畏魂者如果对生活没有动力,那和三和大神有几分差别

这个问题蛮有哲学意义的,充满资本主义腐朽的味道,人性在这里轮乱,道德在这里沦丧,一心只为了赚钱,殊不知,赚钱的平台已经血淋淋的。

想通过手机拉取rtsp的视频流(监控,摄像头等),然后推流到其他手机(不是推流服务器),可以吗?

无畏魂者如果对生活没有动力,那和三和大神有几分差别
泻药,老哥你确定?做转码压缩吗?流量网速都伤不起啊,再来个辣鸡点的手机,分分钟发烫到爆炸。 就先说你用ffmpeg做了转码压缩,手机性能也强到爆炸,那么问题来了,你怎么知道手机的固定IP,推流拉流至少要知道对方的IP吧。对,也就算你你做了socket穿透,这一来二去浪费了手机多少...... 展开详请

今天,2018年11月16日,乐固解决了app在android p上打开崩溃的问题了没?

无畏魂者如果对生活没有动力,那和三和大神有几分差别

关于作者

无畏魂者

如果对生活没有动力,那和三和大神有几分差别

所属标签

扫码关注云+社区