android根据当前系统设置语言在app实现中英文切换

今天介绍下安卓开发下面,如何实现中英文相互切换,

一,需要在res下新建文件夹,大陆中文为values-zh-rCN,英文values-en-rUS,更多可以参考http://my.oschina.net/quttap/blog/204499,直接用values-zh,values-en也可以,可以自己查询,然后其下新建strings.xml,(注:android默认访问values下strings.xml,当设置其它语言找不到对应文件夹时,将转而访问values下的strings.xml)

二,通过getResources().getConfiguration().locale.getLanguage()来获取当前应用语言,中文为zh,英文为en,更多可以参考http://blog.sina.com.cn/s/blog_7981f91f01012wm7.html

三,在androidmianfest.xml中配置下属性android:configChanges="locale",就是利用系统类设置语言,附主要代码,

@Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                String sta=getResources().getConfiguration().locale.getLanguage();
                shiftLanguage(sta);
            }

 

//shift language
    public void shiftLanguage(String sta){

        if(sta.equals("zh")){
        Locale.setDefault(Locale.ENGLISH); 
        Configuration config = getBaseContext().getResources().getConfiguration();
                config.locale = Locale.ENGLISH; 
                getBaseContext().getResources().updateConfiguration(config
                    , getBaseContext().getResources().getDisplayMetrics());
                refreshSelf();
        }else{
            Locale.setDefault(Locale.CHINESE); 
            Configuration config = getBaseContext().getResources().getConfiguration();
            config.locale = Locale.CHINESE; 
            getBaseContext().getResources().updateConfiguration(config
                , getBaseContext().getResources().getDisplayMetrics());
            refreshSelf();
        }
    }
    //refresh self
    public void refreshSelf(){
        Intent intent=new Intent(this,MainActivity.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(intent);
    }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值