Reputation: 11
I use in 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</item>
<item value="4">ValueName4</item>
</string-array>
And i use in Java Code For Get Select Option Value
String.valueOf(option.getSelectedItem())
Toast.makeText(AvpMain.this,
"Loading Wait : " + "\n Search : "+ sbox1 +
"\n("+ String.valueOf(option.getSelectedItem())+") Result",
Toast.LENGTH_SHORT).show();
If User select ValueName3 then result show ValueName3 But I Want Show value not valuename
eg. if user select ValueName2 then result show:2
Upvotes: 0
Views: 1623
Reputation: 24848
Try this way,hope this will help you to solve your problem.
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) {
}
});
OR
Toast.makeText(AvpMain.this,"Loading Wait : " + "\n Search : "+ sbox1 + "\n("+option.getSelectedItem().toString().charAt(option.getSelectedItem().toString().length())+") Result",Toast.LENGTH_SHORT).show();
Upvotes: 2
Reputation: 2045
You need create 2 arrays:
<?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>
Now load first array in your adapter and store the second one in other Array to hold values of items as:
String countries [] = getResources().getStringArray(R.array.counties);
String countries_codes [] = getResources().getStringArray(R.array.countries_codes);
And you can simply get the respective item name and value in your onItemSelected() method like this:
String country = parent.getItemAtPosition(pos).toString();
String value = countries_codes [pos];
Upvotes: 0
Reputation: 1670
You have to implement spinner's 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
}
});
Upvotes: 0