网站建设的好不好/google首页
今天才从别人博客上学来的,浅谈一下我的看法
代码可以从那位大神的博客上下载:
http://download.csdn.net/detail/qcooler/7052849
①:在res目录下建立values-en和values-zh-rCN文件,并各在每个文件下建立一个strings.xml文件,格式可以参考values/strings.xml。
values-en/strings.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources><string name="app_name">LanguageSetting</string><string name="action_settings">Settings</string><string name="hello_world">Hello world!</string><string name="chinese_btn">chinese</string><string name="english_btn">english</string><string name="yellow">yellow</string><string name="red">red</string><string name="gray">gray</string><string name="green">green</string><string name="orange">orange</string><string name="blue">blue</string><string name="black">black</string>
</resources>
values-zh-rCN/strings.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources><string name="app_name">语言设置</string><string name="action_settings">设置</string><string name="hello_world">嗨 世界</string><string name="chinese_btn">中文</string><string name="english_btn">英文</string><string name="yellow">黄色</string><string name="red">红色</string><string name="gray">灰色</string><string name="green">绿色</string><string name="orange">橙色</string><string name="blue">蓝色</string><string name="black">黑色</string>
</resources>
②Androidmainfest.xml:
<activityandroid:name="com.example.languagesetting.MainActivity"android:configChanges="locale"<!-- 注意上面的一句话-->android:label="@string/app_name" ></activity>
③:在主布局文件中添加两个按钮,一个用来换成中文,一个用来换成英文
④:在MainActivity文件中:
public class MainActivity extends Activity {private Configuration config;private DisplayMetrics dm;private Resources resources;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);resources = getResources();// 获得res资源对象config = resources.getConfiguration();// 获得设置对象dm = resources.getDisplayMetrics();((Button) findViewById(R.id.chinese_btn)).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubconfig.locale = Locale.SIMPLIFIED_CHINESE;resources.updateConfiguration(config, dm);onCreate(null);/*如果产生了其他的bug,用“recreate()”试试,具体解释向下看*/}});((Button) findViewById(R.id.english_btn)).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubconfig.locale = Locale.US;resources.updateConfiguration(config, dm);onCreate(null);/*如果产生了其他的bug,用“recreate()”试试,具体解释向下看*/}});}}
MainActivity中的代码还没看懂嘿嘿
好像一般情况下,一个按钮控制中英文转换的,刚才我试了一下用sharepreference辅助加一个switch实现的,一开始我没有用switch而是用的if,但是就是实现不了看了半天也不是逻辑的问题,我觉得应该是oncreate()方法有点其他的猫腻,等偶解决了,再放代码~~
先传个switch的:
①先声明一个变量:
SharedPreferences sp = this.getSharedPreferences(“zwq”, Activity.MODE_PRIVATE);
②上传一个数据:
sp.edit().putString(“zwq”, “1”).commit();
③然后在一个按钮监听中添加以下代码:
switch (sp.getString("zwq", "1")) {case "1":sp.edit().putString("zwq", "0").commit();config.locale = Locale.US;resources.updateConfiguration(config, dm);onCreate(null);/*如果产生了其他的bug,用“recreate()”试试,具体解释向下看*/break;case "0":sp.edit().putString("zwq", "1").commit();config.locale = Locale.SIMPLIFIED_CHINESE;resources.updateConfiguration(config, dm);onCreate(null);/*如果产生了其他的bug,用“recreate()”试试,具体解释向下看*/break;}