使用gson解析json后怎么把数组放到listview中

来源:互联网 发布:软件服务商合作模式 编辑:程序博客网 时间:2024/05/17 03:02
json数据是这个:
{"total":100,"rows":[{"key":"key1","value":"value1"},{"key":"key2","value":"value2"}]}


结构是这样的

public class A {
 public int total;
 public List<B> rows;
}

public class B{
  public string key;
  public string value;
 }

然后我这么写

 String json = "{\"total\":100,\"rows\":[{\"key\":\"key1\",\"value\":\"value1\"},{\"key\":\"key2\",\"value\":\"value2\"}]}";  
        Type type = new TypeToken<B>() {}.getType();  
        Gson gson = new Gson();  
        A a = gson.fromJson(json, type);  
        Log.v("total",String.valueOf(a.getTotal()));

现在我已经可以得到total的数据了,然后我想请问,我需要把rows里面的内容添加到listview里面该怎么添加?
我是这么写的

for (int i = 1; i<a.getRows().size(); i++){
                    Map<String,String> map = mgson.fromJson(json,type);
                    list.add(map);
                }
                sim = new SimpleAdapter(mContext,list , R.layout.profession_listview,new String[]{"value"} , new int[]{R.id.pf});
                mlv.setAdapter(sim);

我只要添加value的数据到listview上面去,请问现在我该怎么做?我写的那个直接崩溃了,提示错误是和我的map有关,我也觉的我这么写不对,我也不知道该怎么写,所以想请问下我要怎么写才能让她显示在listview里面?
然后我之后监听事件获得点击的item里面的数据该怎么写?
我想的是在onItemClick里面这么写

HashMap<String,String> map = (HashMap<String,String>)mlv.getItemAtPosition(position);
                       String nm = map.get("value");
                       Toast.makeText(getApplicationContext(), nm, Toast.LENGTH_SHORT).show();

请问又该怎么写呢?

两个问题
1)怎么添加value到listview里面去?
2)点击事件获得当前点击的item的数据怎么获得?

之前发了个帖子也是关于listview的,问题和这个差不多,不过没这个清晰,然后到现在没解决,换了个思路发现还是不行,想问问有没有大神知道?
没分了,不过另外那个帖子有分,可以到那个帖子留言我给分,实在感谢各位了。
被这个问题困扰两天了,昨天也是这个时候发的那篇帖子,网上能查到的都试过了,全部对我没用,真的希望能解决这个问题,谢谢谢谢!

这个是我那篇帖子的地址:http://bbs.csdn.net/topics/391052596
0 0
原创粉丝点击