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

Get Specific part of the string of a 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 }

但我只想得到“1001” 我该怎么做?

您只需要一个 ArrayList of String 和您的适配器的 "phone" 值:

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

spin.getSelectedItem() returns 从适配器中选择的 Spinner 对象。

因此,在您的情况下,它是一个 HashMap<String, String> 对象,因此只需对其进行转换,然后 使用 HashMap 中的键 获取所需的值。

喜欢,

Map<String, String> selectedMap = (HashMap<String, String>) spin.getSelectedItem();
String phoneNumber = selectedMap.get("phone");