我制作了一个旋转器,它有一堆语言作为项目,我想这样做,以便当用户选择某种语言时,所选的TextViews将被翻译而其他语言不被翻译。有谁知道我会怎么做?
<string-array name="Languages">
<item>English</item>
<item>Tiếng Việt</item>
<item>中文/</item>
<item>हिंदी</item>
<item>العربية</item>
<item>Español</item>
</string-array>
spinner = (Spinner) findViewById(R.id.spinner);
ArrayAdapter adapter=ArrayAdapter.createFromResource(this, R.array.Languages, android.R.layout.simple_spinner_item);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(this);
上面是我的微调器设置。下面是其中一个文本视图的示例。
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/airport"
android:textSize="40sp"
android:textColor="#000000"
android:layout_gravity="center_vertical"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
答案 0 :(得分:0)
首先,当您选择微调器的项目时,您必须更改区域设置语言:
public void setLocale(String lang) {
myLocale = new Locale(lang);
Resources res = getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
conf.locale = myLocale;
res.updateConfiguration(conf, dm);
Intent refresh = new Intent(this, MyActivity.class);
startActivity(refresh);
finish();
}
这样做之后,Android会查找的值应该存储在strings.xml文件中,并带有相应的键:
英语:values / strings.xml
<string name="airport">AIRPORT</string>
西班牙语:values-es / strings.xml
<string name="airport">AEROPUERTO</string>