user3783249
user3783249

Reputation: 11

Spinner String item value get (not string name) android

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

Answers (3)

Hareshkumar Chhelana
Hareshkumar Chhelana

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

extmkv
extmkv

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

Jatin
Jatin

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

Related Questions