【问题标题】:spinner adding string array on item selection how can get item related value in android微调器在项目选择上添加字符串数组如何在android中获取项目相关值
【发布时间】:2011-03-09 10:13:03
【问题描述】:

我正在开发一个微调器这个微调器我是字符串数组

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 

【问题讨论】:

  • parent.getItemAtPosition(pos).toString()------------> 这个跟钢有关,已经做过这个钢的相关值怎么能得到
  • 我的意思是你目前得到的价值是多少?
  • 嗨,酋长,我完成了钢铁,没有得到钢铁项目的价值(3000000)
  • 好吧,我不知道你是不是也这样,从来没有做过&lt;item value="3000000" &gt; Steel&lt;/item&gt;的事情:(

标签: android spinner


【解决方案1】:

我不确定 Spinner 是否允许 XML 字符串中的该属性值,但您的问题可以这样解决。

在您的 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];

【讨论】:

  • 感谢 Vikas Patidar !
猜你喜欢
  • 1970-01-01
  • 2021-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-15
  • 1970-01-01
相关资源
最近更新 更多