HttpUrlconnectionPsot方法请求listview展示

来源:互联网 发布:freemind软件 编辑:程序博客网 时间:2024/06/02 02:45
package homework02.httpurlconnectionpost2;import android.os.Handler;import android.os.Message;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ListView;import android.widget.TextView;import android.widget.Toast;import com.google.gson.Gson;import java.io.InputStream;import java.io.OutputStream;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.net.URLConnection;import java.net.URLEncoder;import java.util.List;import homework02.httpurlconnectionpost2.bean.MenuInfo;import homework02.httpurlconnectionpost2.utils.StreamTools;public class MainActivity extends AppCompatActivity {    private ListView lv;    private List<MenuInfo.ResultBean.DataBean> list;    private Handler handler = new Handler() {        @Override        public void handleMessage(Message msg) {            super.handleMessage(msg);            switch (msg.what) {                case 1:                    MenuInfo menuInfo = (MenuInfo) msg.obj;                    list = menuInfo.getResult().getData();                    MyAdapter adapter = new MyAdapter();                    lv.setAdapter(adapter);                    break;                case 2:                    Toast.makeText(MainActivity.this, "请求错误", Toast.LENGTH_SHORT).show();                    break;            }        }    };    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //初始化控件        initview();        //从网上获取数据        readFile();    }    //listview适配器    class MyAdapter extends BaseAdapter {        @Override        public int getCount() {            return list != null ? list.size() : 0;        }        @Override        public Object getItem(int position) {            return list.get(position);        }        @Override        public long getItemId(int position) {            return position;        }        @Override        public View getView(int position, View convertView, ViewGroup parent) {            ViewHolder holder=null;            if (convertView == null) {                convertView = convertView.inflate(MainActivity.this, R.layout.item, null);                holder = new ViewHolder();                holder.textView = (TextView) convertView.findViewById(R.id.txt);                convertView.setTag(holder);            } else {                holder = (ViewHolder) convertView.getTag();            }            holder.textView.setText(list.get(position).getSteps().get(0).getStep());            return convertView;        }        class ViewHolder {            TextView textView;        }    }    private void readFile() {        //创建一个子线程        new Thread() {            @Override            //重写run方法            public void run() {                super.run();                try {                    //接口地址                    URL url = new URL("http://apis.juhe.cn/cook/query.php");                    HttpURLConnection connection = (HttpURLConnection) url.openConnection();                    //请求方式post                    connection.setRequestMethod("POST");                    connection.setReadTimeout(5000);                    connection.setConnectTimeout(5000);                    OutputStream os = connection.getOutputStream();                    os.write(("key=0348a7bbfb2b2175e7bfd45ef47a5324&menu=锅包肉").getBytes());                    os.flush();                    int code = connection.getResponseCode();                    if (code == 200) {                        InputStream is = connection.getInputStream();                        String json = StreamTools.readfiles(is);                        //解析                        Gson gson = new Gson();                        MenuInfo menuInfo = gson.fromJson(json, MenuInfo.class);                        Message msg = handler.obtainMessage();                        msg.what = 1;                        msg.obj = menuInfo;                        handler.sendMessage(msg);                    } else {                        handler.sendEmptyMessage(2);                    }                } catch (Exception e) {                    e.printStackTrace();                }            }        }.start();    }    private void initview() {        lv = (ListView) findViewById(R.id.listview);    }}
阅读全文
0 0
原创粉丝点击