我正在开发一个微调器这个微调器我是字符串数组
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>
这是微调器相关的字符串数组我得到的微调器项目我正在使用parent.getItemAtPosition(pos).toString(),完成我的问题是特定项值如何获得
example : steel----------->3000000
答案 0 :(得分:20)
我不确定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];