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
Ответы
Ответ 1
Я не уверен, что 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];