我能够将JSON数组填充到微调器值并获取所选项目。但我想要在微调器中选择的项目的id。需要帮忙。感谢
{"streams":[{"streamid":"1","streamname":"Engineering"},
{"streamid":"2","streamname":"Medical"},
{"streamid":"3","streamname":"Science"}]}
例如,如果我选择STREAMNAME-Medical,那么我可以获得医疗ID,即STREAMID-2 但每次我得到最后一个流名称和流ID。来自JSON map.get(“streamid”)和(“streamname”)
这是我的代码:
private String streamid, streamname,stream,id,name;
ArrayAdapter<String> streamAdapter;
Spinner sp;
////////////////////////////////////////////////
btnCreateAccount.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
stream=(String) sp.getSelectedItem();
System.out.println("STREAM="+stream);
});
}
try {
if (c.GetResponse() != null) {
JSONObject json = new JSONObject(c.GetResponse());
JSONArray userKey = json.getJSONArray("streams");
Log.e("GetJason Response", " " + userKey);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sp.setPrompt("Select Stream");
for (int i = 0; i < userKey.length(); ++i)
{
map = new HashMap<String, String>();
map.put("streamid", userKey.getJSONObject(i).optString("streamid"));
map.put("streamname", userKey.getJSONObject(i).optString("streamname"));
data = new ArrayList<HashMap<String, String>>();
// Set the JSON Objects into the array
data.add(map);
id = (String) map.get("streamid");
name = (String) map.get("streamname");
adapter.add(userKey.getJSONObject(i).getString("streamname"));
}
sp.setAdapter(adapter);
System.out.println("ID="+ id);
System.out.println("NAME="+name);
}