我有一个由mysql数据库填充的微调器:
JSONArray data = new JSONArray(getJSONUrl(url));
final ArrayList<HashMap<String, String>> MyArrList = new ArrayList<HashMap<String, String>>();
HashMap<String, String> map;
for(int i = 0; i < data.length(); i++){
JSONObject c = data.getJSONObject(i);
map = new HashMap<String, String>();
map.put("customerID", c.getString("id_bus"));
map.put("name", c.getString("bus_line"));
map.put("phone", c.getString("bus_number"));
MyArrList.add(map);
}
SimpleAdapter sAdap;
sAdap = new SimpleAdapter(MainActivity.this, MyArrList, R.layout.activity_show,
new String[] {"name", "phone"}, new int[] {R.id.ColName, R.id.ColTel});
spin.setAdapter(sAdap);
知道我是否通过使用此选项获得所选值:
String newCategory = spin.getSelectedItem().toString()
我得到的是:
{customerID=1 , phone=1001 , name=JAM }
但我想要的只是&#34; 1001&#34; 我怎么能这样做?
答案 0 :(得分:1)
spin.getSelectedItem()
从适配器返回Spinner的Selected对象。
所以在你的情况下,它是一个HashMap<String, String>
对象,所以只需使用HashMap中的来强制转换获取所需的值。
像,
Map<String, String> selectedMap = (HashMap<String, String>) spin.getSelectedItem();
String phoneNumber = selectedMap.get("phone");
答案 1 :(得分:0)
你需要一个带有&#34;电话&#34;的字符串ArrayList。适配器的值:
final ArrayList<String> myArrList = new ArrayList<String>();
for(int i = 0; i < data.length(); i++){
JSONObject c = data.getJSONObject(i);
myArrList.add(c.getString("bus_number"));
}