通过POST请求得到数据,并添加到列表显示

来源:互联网 发布:学党史知国情征文500字 编辑:程序博客网 时间:2024/05/16 03:15

部门的网络获取通讯录作业。感觉蛮有实用度的 。

POST请求用到的是OKHTTP的包。
用到的列表适配器的相关东西在上一个博客

package com.example.wang23333.listtext;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.ListView;import com.squareup.okhttp.FormEncodingBuilder;import com.squareup.okhttp.OkHttpClient;import com.squareup.okhttp.Request;import com.squareup.okhttp.RequestBody;import com.squareup.okhttp.Response;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;import java.util.ArrayList;import java.util.List;import bean.Bean;public class MainActivity extends AppCompatActivity {    private ListView mlist;    private List<Bean> mBean;    private New_Myadapter myadapter;    String result;    String realname;    String mobile;    static OkHttpClient client = new OkHttpClient();    String url = "这里是请求数据的地址";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        /**        * 网络请求和UI放在两个线程里面        */        new Thread(new Runnable() {            @Override            public void run() {                try {                    result = post();                    runOnUiThread(new Runnable() {                        @Override                        public void run() {                            initDatas();                            initViews();                        }                    });                } catch (Exception e) {                    e.printStackTrace();                }            }        }).start();    }    public  String post() throws Exception {        RequestBody body = new FormEncodingBuilder()                .add("键", "值")//发送过去的键值对                .build();        final Request request = new Request.Builder()                .url(url)                .post(body)                .build();        Response response = client.newCall(request).execute();        if(response.isSuccessful()){            return response.body().string();//得到传回的数据        }        else {            return "wrong";        }    }/** * 配置列表适配 */    public void initViews(){        mlist = (ListView)findViewById(R.id.list);        mlist.setAdapter(myadapter);    }/** * json数据处理 * 数据放入列表 */    public void initDatas(){        mBean = new ArrayList<Bean>();        Bean bean;        JSONArray arr = null;        try {            arr = new JSONArray(result);            //根据数据条数循环添加数据            for (int i = 0; i < arr.length(); i++) {                JSONObject temp = (JSONObject) arr.get(i);                realname = temp.getString("realname");                mobile = temp.getString("mobile");                bean = new Bean(realname,mobile);                mBean.add(bean);            }        } catch (JSONException e) {            e.printStackTrace();        }        myadapter = new New_Myadapter(this,mBean);    }}
0 0
原创粉丝点击