一组json数据,如何将这组据填充到Spinner组件中
[{"id":"32","hyname":"建筑装修"},{"id":"15","hyname":"机械制造"},{"id":"16","hyname":"电子通信"},{"id":"21","hyname":"计量监测"},{"id":"28","hyname":"化验检测"},{"id":"19","hyname":"地质勘探"},{"id":"23","hyname":"农林牧渔"},{"id":"30","hyname":"机械冷加工"},{"id":"31","hyname":"机械热加工"},{"id":"22","hyname":"物资储运"},{"id":"24","hyname":"餐饮服务"}]
一组json数据,如何将这组据填充到Spinner组件中,并显示hyname字符,取值时取id的值呢?请指教
------解决方案--------------------
先解析数据,放到list或者vector中,然后再显示
------解决方案--------------------
先将数据解析好,保存为一个arraylist,然后自定义一个baseadapter或者直接ArrayAdapter adapter = new ArrayAdapter(this,R.layout.spinnerbg(一个textview就行), hyname的数组);然后spinner.setAdapter(adapter);
点击时取id的值,只要在spinner.setOnItemSelectedListener里面实现就可以了
------解决方案--------------------
1,创建实体类 Test
public void Test {
private String id ;
private String name;
生成get和set方法
}
//jsonString 就是你拼的或者服务器返回的字符串
2.public static ArrayList getNewsList(String jsonString) throws JSONException {
JSONArray arr = new JSONArray(jsonString);
ArrayList testsLists = new ArrayList();
for (int i = 0; i
JSONObject temp = (JSONObject) arr.get(i);
Test tests = new Tests();
tests.setmNewsTitle(temp.getString("id"));
tests.setmNewsContent(temp.getString("hyname"));
testsLists.add(news);
}
return testsLists;
}
------解决方案--------------------
试一下这段代码:
String jsontext=[{"id":"32","hyname":"Construction & Remodel"},...];
ArrayList list=new ArrayList();
Hashtable hnameids=new Hashtable();
JsonArray array=new JsonArray(jsontext);
for(int i=0;i
{
JsonObject obj=array.getJsonObject(i);
list.add(obj.getString("hyname"));
hnameids.put(obj.getString("hyname"),obj.getString("id"));
}
ArrayAdapter adapter=new ArrayAdapter(context,android.R.layout.simple_list_item1,list);
spinner.setAdapter(adapter);
spinner.OnItemSelectedListener (new OnItemClickListener() {
public void onItemClick(AdapterView> adapter, View view, int pos,
long id) {
String data= spinner.getSelectedItem();
String id=hnameids.get(data);
}
});
------解决方案--------------------
另一种方法:
使用 Collection 来设置 ID 和 HeName
class YourCollection{
private String id;
private String hename;