android多语言支持(Locale与Configuration)
来源:互联网 发布:上海淘宝代运营 编辑:程序博客网 时间:2024/05/09 12:48
android多语言支持(Locale与Configuration)
新建一个继承Activity类的MultiLanguageActivity,并设置布局文件为:multilanguage.xml。
首先添加一个TextView和一个Spinner,TextView用于显示一个字符串--“你好”,Spinner用于在程序中动态选择语言。
<TextView
android:id="@+id/multilanguage_tv01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/hello"
android:textSize="24sp"/>
<Spinner
android:id="@+id/multilanguage_spinner01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:entries="@array/multilanguage_item"
android:prompt="@string/multilanguage_spinner_prompt"
android:spinnerMode="dialog"/>
页面效果:
此外还需要定义3个支持国际语言的strings.xml(默认的,values-en,values-ja)
values-en/strings.xml
<?xmlversion="1.0"encoding="utf-8"?>
<resources>
<stringname="hello">こんにちは</string>
<stringname="multilanguage_spinner_prompt">言叶を選択し</string>
<string-arrayname="multilanguage_item">
<item>中文</item>
<item>English</item>
<item>日文</item>
</string-array>
</resources>
values-ja/strings.xml
<?xmlversion="1.0"encoding="utf-8"?>
<resources>
<stringname="hello">Hello</string>
<stringname="multilanguage_spinner_prompt">Select the language</string>
<string-arrayname="multilanguage_item">
<item>中文</item>
<item>English</item>
<item>日文</item>
</string-array>
</resources>
运行效果:
最后在Activity程序中先得到默认的Spinner实例,然后设置Spinner的setOnItemSelectedListener(),而后覆写里面的2个方法。
package lyx.feng.simpletextdemo;
......
public class MultiLanguageActivity extends Activity {
private Spinnerspinner = null;
private Stringitem[];
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.multilanguage);
this.spinner = (Spinner)super
.findViewById(R.id.multilanguage_spinner01);
this.item = getResources().getStringArray(R.array.multilanguage_item);
this.spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position,long id) {
Toast.makeText(MultiLanguageActivity.this,item[position],
Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
}
效果
最后动态设置默认的语言环境。
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position,long id) {
Toast.makeText(MultiLanguageActivity.this,item[position],
Toast.LENGTH_SHORT).show();
Resources res = getResources();
Configuration conf = res.getConfiguration();
switch (position) {
case 0:
conf.locale = Locale.CHINA;
break;
case 1:
conf.locale = Locale.ENGLISH;
break;
case 2:
conf.locale = Locale.JAPAN;
break;
}
DisplayMetrics metrics = res.getDisplayMetrics();
res.updateConfiguration(conf, metrics);
tv.setText(getString(R.string.hello));
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
运行效果:
- android多语言支持(Locale与Configuration)
- android 获取手机支持的locale信息
- android的locale支持之undefined reference
- Android多语言支持
- android多语言支持
- Android多语言支持
- Android支持多语言
- Android多语言支持
- Android 多语言支持
- Android 语言环境设置Locale的设置
- Java支持的Locale语言和国家-----示例
- 用java locale获取系统所支持的语言
- Android——屏幕适配与多语言支持
- android的多语言支持
- Android App支持多语言
- Android多语言支持二
- Android 动态支持多语言
- Android多语言支持实现
- HDU_P3037 Saving Beans(Lucas定理+组合数取膜)
- 使用MapReduce访问HBase三种访问模式
- c++中string的用法积累
- POJ 1523 SPF【求割点】
- 深夜学算法之Bloom Filter:概率play
- android多语言支持(Locale与Configuration)
- android Service
- 【POJ 1961】Period(KMP求循环节)
- 模板_Lucas定理
- jqgrid动态列生成
- meta标签中的http-equiv属性使用介绍
- 近5年126个Java面试问题汇总 收藏
- 深度学习阅读列表 Deep Learning Reading List
- MergeKSortedList