android中带数组字符串源的开关大小写
我在res->value->字符串处有数组字符串,如下所示: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
<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) {
}
});
}
}