我在res-> value->字符串中有数组字符串,如下所示:
<string-array name="language">
<item>France</item>
<item>English</item>
</string-array>
现在,在 onItemSelected 里面我想制作如果选择法国然后Toast fance并将语言更改为法国,当我选择英语然后Toast english并将语言更改为英语
public class SPinnerActivity extends Activity implements
AdapterView.OnItemSelectedListener{
public void onItemSelected(AdapterView<?> parent,View view,int pos,long id){
}
public void onNothingSelected(AdapterView<?> parent){
}
}
这是更改语言的方法:
protected void setLanguage (String language){
mylocale = new Locale(language);
Resources resources = getResources();
DisplayMetrics dm = resources.getDisplayMetrics();
Configuration conf = resources.getConfiguration();
conf.locale = mylocale;
resources.updateConfiguration(conf,dm);
}
答案 0 :(得分:1)
如果您想使用开关盒,请执行以下操作
public class SPinnerActivity extends Activity implements
AdapterView.OnItemSelectedListener{
public void onItemSelected(AdapterView<?> parent,View view,int pos,long id){
switch (pos){
case 0:
Toast.makeText(context,"France",Toast.LENGTH_LONG).show();
break;
case 1:
Toast.makeText(context,"English",Toast.LENGTH_LONG).show();
break;
}
}
public void onNothingSelected(AdapterView<?> parent){
}
}
注意:这不是这样做的好方法,因为它不是直接的方法。
我建议的是展示这样的东西
将数组加载为arrayList
ArrayList yourLanguageList =从strig xml加载为数组列表;
然后在onItemSelected
中执行此操作AdapterView.OnItemSelectedListener{
public void onItemSelected(AdapterView<?> parent,View view,int pos,long id){
Toast.makeText(context,yourLanguageList.get(pos).toString,Toast.LENGTH_LONG)
.show();
}
public void onNothingSelected(AdapterView<?> parent){
}
}
答案 1 :(得分:1)
试试这个
public class SPinnerActivity extends Activity implements
String language = "";
AdapterView.OnItemSelectedListener{
public void onItemSelected(AdapterView<?> parent,View view,int pos,long id){
switch(position){
case 0:
language ="France";
break;
case 0:
language ="English";
break;
}
setLanguage (language )
}
public void onNothingSelected(AdapterView<?> parent){
}
}
protected void setLanguage (String language){
mylocale = new Locale(language);
Resources resources = getResources();
DisplayMetrics dm = resources.getDisplayMetrics();
Configuration conf = resources.getConfiguration();
conf.locale = mylocale;
resources.updateConfiguration(conf,dm);
Toast.makeText(this,language,Toast.LENGTH_SHORT).show();
}
答案 2 :(得分:0)
您可以在xml本身中加载数组项,请参阅以下代码
<Spinner
android:id="@+id/spinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:drawSelectorOnTop="true"
android:entries="@array/languages"/> //your xml arrayhere
public class MyActivity extends Activity {
private String[] string_array;
@Override
public void onCreate() {
super.onCreate();
//string_array = getResources().getStringArray(R.array.languages);
Spinner spinner = (Spinner) findViewById(R.id.spinner);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
String items = spinner.getSelectedItem().toString();
Log.i("Selected item : ", items);
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
}
}