[{"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的值呢?请指教
解决方案 »
- 初学ContentProvider的几个问题
- android 开发闹钟问题
- 怎么把几个应用放在mainmenu的规定位置?
- ActivityGroup 中 ExpandableListActivity 的ui刷新问题
- TextView cannot resolved to a type
- 百度地图覆盖物傻瓜教程
- 速求大神指教 我这哪里错了呀
- 图片部分区域的填充问题,想了好久了
- 请教高手:如何让手机通过蓝牙自动配对一个平板电脑(平板电脑上的蓝牙连接信息通过二维码提供)
- android开发百度地图定位到大西洋去了!!
- 如何通过循环数组设置button的id?
- android使用NIO的Socket通信,无法收到返回值
点击时取id的值,只要在spinner.setOnItemSelectedListener里面实现就可以了
public void Test {
private String id ;
private String name;
生成get和set方法
}
//jsonString 就是你拼的或者服务器返回的字符串
2.public static ArrayList<Test> getNewsList(String jsonString) throws JSONException {
JSONArray arr = new JSONArray(jsonString);
ArrayList<Test> testsLists = new ArrayList<Test>();
for (int i = 0; i < arr.length(); 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;
}
{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; void setHename(String hename){
this.hename = hename;
} String getHename(){
return hename;
} void setId(String id){
this.id= id;
}
String getId(){
return id;
}}
// AsyncTask
@Override
protected List<YourCollection> doInBackground(Void... params) { JSONObject obj = null;
List<YourCollection> result = new ArrayList<YourCollection>(); try{ InputStream ips = activity.getAssets().open("your.json");
BufferedReader buffer = new BufferedReader(new InputStreamReader(ips)); StringBuilder string = new StringBuilder();
String line = ""; while((line = buffer.readLine()) != null){
string.append(line);
} obj = new JSONObject(string.toString()); }
catch(Exception e){ } if(obj != null){
JSONArray array = obj.optJSONArray("data");
for (int i=0; i<array.length(); i++){
JSONObject rss = array.optJSONObject(i);
YourCollection m = new YourCollection ();
m.setHename(rss.optString("hename")); m.setId(rss.optString("id"));
result.add(m);
}
} return result;
}
在 Adapter 中创建一个函数来返回列表,使用:
OnItemSelectedListener mwe = new OnItemSelectedListener() { @Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
List<YourCollection> list = YourAdapter.getList(); // your function to get List
YourCollection c = list.get(arg2);
String id = c.getId(); }
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub }
};