Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android中带数组字符串源的开关大小写_Android_Arrays_String - Fatal编程技术网

android中带数组字符串源的开关大小写

android中带数组字符串源的开关大小写,android,arrays,string,Android,Arrays,String,我在res->value->字符串处有数组字符串,如下所示: <string-array name="language"> <item>France</item> <item>English</item> </string-array> 如果要使用开关箱,请执行以下操作 public class SPinnerActivity extends Activity implements AdapterView

我在res->value->字符串处有数组字符串,如下所示:

<string-array name="language">
    <item>France</item>
    <item>English</item>
</string-array>

如果要使用开关箱,请执行以下操作

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

    }
}
公共类SpinneActivity扩展活动实现
AdapterView.OnItemSelectedListener{
已选择公共位置(AdapterView父项、视图、整数位置、长id){
开关(pos){
案例0:
Toast.makeText(上下文,“法国”,Toast.LENGTH_LONG).show();
打破
案例1:
Toast.makeText(上下文,“英语”,Toast.LENGTH_LONG).show();
打破
}
}
未选择公共无效(AdapterView父级){
}
}
注意:这不是一个好方法,因为它不是直接的方法。

我的建议是展示这样的东西

将数组作为arrayList加载

ArrayList yourLanguageList=从strig xml加载为数组列表

然后在选定的位置执行此操作

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

}
AdapterView.OnItemSelectedListener{
已选择公共位置(AdapterView父项、视图、整数位置、长id){
Toast.makeText(上下文,yourLanguageList.get(pos.toString,Toast.LENGTH\u LONG)
.show();
}
未选择公共无效(AdapterView父级){
}
}试试这个

 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();  

}
公共类SpinneActivity扩展活动实现
字符串语言=”;
AdapterView.OnItemSelectedListener{
已选择公共位置(AdapterView父项、视图、整数位置、长id){
开关(位置){
案例0:
语言=“法国”;
打破
案例0:
语言=“英语”;
打破
}
设置语言(语言)
}
未选择公共无效(AdapterView父级){
}
}
受保护的void setLanguage(字符串语言){
mylocale=新的区域设置(语言);
Resources=getResources();
DisplayMetrics dm=resources.getDisplayMetrics();
conf=resources.getConfiguration();
conf.locale=mylocale;
更新配置(conf,dm);
Toast.makeText(this,language,Toast.LENGTH_SHORT).show();
}

您可以在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) {

        }

    });
}

}
//您的xml数组在这里
公共类MyActivity扩展了活动{
私有字符串[]字符串_数组;
@凌驾
public void onCreate(){
super.onCreate();
//string_array=getResources().getStringArray(R.array.languages);
微调器微调器=(微调器)findViewById(R.id.Spinner);
spinner.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView arg0、视图arg1、内部arg2、长arg3){
String items=spinner.getSelectedItem().toString();
Log.i(“选定项:”,项);
}
@凌驾
未选择公共无效(AdapterView arg0){
}
});
}
}

使用开关大小写,并根据数组的位置更改toast中的语言。所以要显示在微调器中选择的内容吗?您已经将该语言数组提供给spinner了吗?@Hemant如何实现该开关大小写?使用spinner getSelectedItem().toString()来显示所选文本。@asqa我发布ans请检查。第二种方法也不是好方法。。由于ArrayAdapter可能会被过滤,因此很明显,
yourLanguageList.get(pos)
将返回错误的项,然后他可以从微调器返回的视图中获取它
 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();  

}
<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) {

        }

    });
}

}