用android中的Array String源切换案例

时间:2018-01-16 11:08:11

标签: android arrays string

我在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);

}

3 个答案:

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

        }

    });
}

}