Java 微调器字符串项值获取(非字符串名称)android
我在strings.xml中使用Java 微调器字符串项值获取(非字符串名称)android,java,android,string,android-layout,android-activity,Java,Android,String,Android Layout,Android Activity,我在strings.xml中使用 <string-array name="country_arrays"> <item value="0">ValueName0</item> <item value="1">ValueName1</item> <item value="2">ValueName2</item> <item value="3">ValueName3<
<string-array name="country_arrays">
<item value="0">ValueName0</item>
<item value="1">ValueName1</item>
<item value="2">ValueName2</item>
<item value="3">ValueName3</item>
<item value="4">ValueName4</item>
</string-array>
如果用户选择ValueName3,则结果显示ValueName3
但我想显示的是价值而不是价值名
如果用户选择ValueName2,则结果显示:2尝试这种方法,希望这将帮助您解决问题。 strings.xml
<array name="country_arrays">
<item>ValueName0</item>
<item>ValueName1</item>
<item>ValueName2</item>
<item>ValueName3</item>
<item>ValueName4</item>
</array>
<array name="country_value_arrays">
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
</array>
private ArrayList<String> countryList;
private ArrayList<String> countryValueList;
countryList = new ArrayList<String>(Arrays.asList(getResources().getStringArray(R.array.country_arrays)));
countryValueList = new ArrayList<String>(Arrays.asList(getResources().getStringArray(R.array.country_value_arrays)));
option.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(AvpMain.this,"Loading Wait : " + "\n Search : "+ sbox1 + "\n("+countryValueList.get(position)+") Result",Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
您必须实现微调器的onItem Selected Listner
Try this
Spinner spinner;
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
Toast.makeText(AvpMain.this,
"Loading Wait : " + "\n Search : " +
"\n("+positoin") Result",
Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub
}
});
试试这个
纺纱机;
spinner.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图、,
内部位置,长id){
//TODO自动生成的方法存根
Toast.makeText(AvpMain.this,
加载等待:“+”\n搜索:“+
“\n(“+positoin”)结果”,
吐司。长度(短)。show();
}
@凌驾
未选择公共无效(AdapterView父级){
//TODO自动生成的方法存根
}
});
您需要创建两个阵列:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="countries">
<item>Portugal</item>
<item>France</item>
<item>Spain</item>
</string-array>
<string-array name="countries_codes">
<item>340</item>
<item>250</item>
<item>134</item>
</string-array>
</resources>
您只需在onItemSelected()方法中获取相应的项名称和值,如下所示:
String country = parent.getItemAtPosition(pos).toString();
String value = countries_codes [pos];
选项是什么?一个微调器,一个列表视图?您是否尝试过
getSelectedItemId()
?我认为这对于字符串数组来说是无效的语法。在使用两个列表的地方查看答案,这是实现所需目标的唯一方法。就我个人而言,我会为此使用枚举。谢谢(Sagar Pilkhwal)现在的结果是值id+1。这将给出最后一个数字,好的。但若值不是字符串的最后一位呢?那个么您必须尝试以下方法:AdapterView和SetOnItemSelectedListener上的错误确保您已找到微调器的do findviewbyid。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="countries">
<item>Portugal</item>
<item>France</item>
<item>Spain</item>
</string-array>
<string-array name="countries_codes">
<item>340</item>
<item>250</item>
<item>134</item>
</string-array>
</resources>
String countries [] = getResources().getStringArray(R.array.counties);
String countries_codes [] = getResources().getStringArray(R.array.countries_codes);
String country = parent.getItemAtPosition(pos).toString();
String value = countries_codes [pos];