2016-11-23 60 views
0

I'am动态创建并添加项目给spinners,问题是选择任何微调项目的项目(例如:4th),iam获得最后一个spinners项目的id(第四个id),问题出在iam使用的列表上。我想要得到我为该项目动态设置的ID。Dynamic Spinners项目选择错误

如何正确获取每个微调器的值..

代码如下。

public void secondarray(JsonParser jsonParser) { 
    String fieldName; 
    ameList = new ArrayList<AmeModel>(); 
    AmeModel ameModel = null; 

    try { 
     while (jsonParser.nextToken() != JsonToken.END_ARRAY) { 
      ameModel = new AmeModel(); 
      while (jsonParser.nextToken() != JsonToken.END_OBJECT) { 
       fieldName = jsonParser.getCurrentName(); 
       if ("valueid".equals(fieldName)) { 
        jsonParser.nextToken(); 
        ameModel.setId((jsonParser.getText())); 

       } else if ("valuename".equals(fieldName)) { 
        jsonParser.nextToken(); 
        ameModel.setName((jsonParser.getText())); 


       } else { 
        jsonParser.skipChildren(); 
       } 
      } 
      ameList.add(ameModel); 
     } 


     Spinner sp=new Spinner(MainActivity.this); 

     AmeAdapter adapter = new AmeAdapter(this, ameList); 

     sp.setAdapter(adapter); 
     sp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
      @Override 
      public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { 

       Toast.makeText(MainActivity.this, ameList.get(i).getId(), Toast.LENGTH_SHORT).show(); 
      } 

      @Override 
      public void onNothingSelected(AdapterView<?> adapterView) { 

      } 
     }); 

     container.addView(sp); 

     //setContentView(linearlayout); 

    } catch (JsonParseException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

} 

任何帮助将不胜感激谢谢。

+0

什么是你面对@Sachin瓦玛 –

+0

如果IAM选择第一微调的2位,IAM得到2当前位置最后spinner..i的价值要的问题根据各个纺纱厂的物品获取价值。 –

+0

我认为问题是与列表,列表最终填充最后一个数组items.so只有亚姆获取其在所有其他spinners.This项目,我可以从微调选择正确的项目。谢谢。 –

回答

1

对于获得所选项目名称:

String itemName=sp.getSelectedItem().toString(); // sp is your spinner 

为了获得选择的项目的位置是:如果你想获得标识那些你动态设置

int position = sp.getSelectedItemPosition(); 

现在按照你的代码snippiest。

HashMap<String, String> nameId; 
    String itemId; 
    String itemName= String.valueOf(sp.getSelectedItem()); 

    for (String s : nameId.keySet()) { 

      if (nameId.get(s).equals(itemName)) { 

       itemId= s; 

      } 

尝试使用上述建议

+0

兄弟它会帮助我得到被选中的名称,它的正确性,但我想要得到它的ID ..我动态设置,如何得到这个? –

+0

srry的错误,我更新了我的问题。 –

+0

检查编辑解决方案。这将是你会得到主意。 –