Spinner добавляет строковый массив при выборе элемента, как можно получить связанное с элементом значение в android

Я разрабатываю один spinner this spinner Я – строковый массив

spinner = (Spinner)this.findViewById(R.id.mlg); final CharSequence[] itemArray =getResources().getTextArray(R.array.RectBeam); final List<CharSequence> itemList =new ArrayList<CharSequence>(Arrays.asList(itemArray)); adapter = new ArrayAdapter(this,android.R.layout.simple_spinner_item,itemList); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter); spinner.setOnItemSelectedListener(new OnItemSelectedListener() { public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { Toast.makeText(parent.getContext(), "The planet is " + parent.getItemAtPosition(pos).toString(), Toast.LENGTH_LONG).show(); } 

……………………….

 <string-array name="RectBeam"> <item value="3000000" > Steel</item></string-array> 

Это строковый массив, связанный с spinner, я получаю элемент spinner, я использую parent.getItemAtPosition (pos) .toString (), моя проблема – это конкретное значение элемента, как можно получить

 example : steel----------->3000000 

Solutions Collecting From Web of "Spinner добавляет строковый массив при выборе элемента, как можно получить связанное с элементом значение в android"

Я не уверен, что Spinner допускает это значение атрибута в XML String или нет, но ваша проблема может быть решена именно так.

Создайте два массива в файле array.xml например:

 <?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="items"> <item>Nokia 1200</item> <item>Nokia 1600</item> <item>Nokia 5130</item> </string-array> <string-array name="values"> <item>1000</item> <item>2000</item> <item>5000</item> </string-array> </resources> 

Теперь загрузите первый массив в свой адаптер и сохраните второй в другом массиве для хранения значений элементов как:

 String items [] = getResources().getStringArray(R.array.items); String values [] = getResources().getStringArray(R.array.values); 

И вы можете просто получить соответствующее имя и значение элемента в onItemSelected() следующим образом:

 String item = parent.getItemAtPosition(pos).toString(); String value = values [pos];