赫赫哒 2014-09-12 16:58 采纳率: 0%
浏览 2092

请问,android客户端怎样解析服务器返回的数据并用adapter填充list呢?

请大家帮忙看看错误在哪,我也不知道我解析对不对,线程也没摸到门。

服务器返回的Json是:

{

"a":["一"."二"],

"b":{"1":"1","2":"2"},

"c":{"1":"3","2":"4"},

"d":{"1":"5","2":"6"},​​

"e":{"1":"7","2":"8"}

}

客户端代码(没有放上导入包):

public class MainActivity extends ActionBarActivity {

Context myContext;
//public Thread myThread;
EditText username;
EditText userpwd;
ListView myListView;
Button ok;
String uname1;
String pwd1;
String resultString;
private SimpleAdapter simpleAdapter=null;
List<Map<String, Object>> listItems = null;
private  Handler myHandler;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    username=(EditText)findViewById(R.id.uname);
    userpwd=(EditText)findViewById(R.id.pwd);
    myListView=(ListView)findViewById(R.id.item);
    ok=(Button)findViewById(R.id.submit);
    myHandler = new Handler()
    {
        @Override
        public void handleMessage(Message msg) {
            if (msg.what == 0x123) {

                simpleAdapter=new SimpleAdapter(myContext, listItems, R.layout.carditem, 
                        new String[]{"cj","xf","xs","km","zt"}, 
                        new int[]{R.id.chengji,R.id.xuefen,R.id.xueshi,R.id.kecheng,R.id.zhuangtai});

                myListView.setAdapter(simpleAdapter);

            }
        }
    };


    ok.setOnClickListener(new View.OnClickListener()
    {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            new mythread().start();
        }

    });
}
private class mythread extends Thread
{
    public void run()
    {

        uname1=username.getText().toString();
        pwd1=userpwd.getText().toString();
        //contTent.setText(uname1+pwd1);

        String url="http://202.115.137.32:8379/demo1/login.php";
        HttpPost myPost=new HttpPost(url);

        List<NameValuePair>parms=new ArrayList<NameValuePair>();
        parms.add(new BasicNameValuePair("uname", uname1));
        parms.add(new BasicNameValuePair("upwd", pwd1));

        try 
        {
            myPost.setEntity(new UrlEncodedFormEntity(parms));
        } 
        catch (UnsupportedEncodingException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        HttpClient myhttp=new DefaultHttpClient();
            HttpResponse response=null;
            try {
                response = myhttp.execute(myPost);
            } catch (IOException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
            try {
                resultString = EntityUtils.toString(response.getEntity(),"UTF-8");
            } catch (ParseException | IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }  
            try {
                JSONObject jsonObject=new JSONObject(resultString);
                JSONArray km=jsonObject.getJSONArray("a");
                JSONObject cj=jsonObject.getJSONObject("b");
                JSONObject xs=jsonObject.getJSONObject("c");
                JSONObject xf=jsonObject.getJSONObject("d");
                JSONObject zt=jsonObject.getJSONObject("e");
                listItems=new ArrayList<Map<String,Object>>();
                for (int i = 0; i < km.length(); i++) 
                {

                    Map<String, Object> listItem=new HashMap<String,Object>();
                        listItem.put("km", km.getString(i));
                        listItem.put("cj", cj.optString(i+"1","无"));
                        listItem.put("xs", xs.optString(i+"1","无"));
                        listItem.put("xf", xf.optString(i+"1","无"));
                        listItem.put("zt", zt.optString(i+"1","无"));
                    listItems.add(listItem);
                }

            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }


        myHandler.sendEmptyMessage(0x123);
    }
}

}

  • 写回答

1条回答 默认 最新

  • ha_lydms 后端领域优质创作者 2023-03-29 22:21
    关注

    看着没啥问题,现在解决了吗?

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题