如何使用微调器中选择的项目来翻译TextViews?

时间:2016-06-27 22:08:24

标签: java android xml spinner translation

我制作了一个旋转器,它有一堆语言作为项目,我想这样做,以便当用户选择某种语言时,所选的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" />

1 个答案:

答案 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>