获取微调器的字符串的特定部分

时间:2015-03-04 20:17:02

标签: android eclipse spinner

我有一个由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; 我怎么能这样做?

2 个答案:

答案 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"));
}