使用HttpClient请求数据显示在ListView上

来源:互联网 发布:入骨相思知不知微盘 编辑:程序博客网 时间:2024/06/08 07:34

android标签中的权限

android {   
 useLibrary 'org.apache.http.legacy'

}

package fmh.bwie.com.lianxi;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.Button;import android.widget.ListView;import android.widget.TextView;import com.google.gson.Gson;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.util.EntityUtils;import java.io.IOException;import java.util.List;public class MainActivity extends AppCompatActivity {    String url = "http://www.toutiao.com/api/pc/focus/";    private Button button;    Handler handler = new Handler(){        @Override        public void handleMessage(Message msg) {            super.handleMessage(msg);            if (msg.what==1){                String s = (String) msg.obj;                Gson gson = new Gson();                Http http = gson.fromJson(s, Http.class);                list = http.getData().getPc_feed_focus();                lv.setAdapter(new MyAdapter());                new MyAdapter().notifyDataSetChanged();            }        }    };    private ListView lv;    private List<Http.DataBean.PcFeedFocusBean> list;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //获取控件        button = (Button)findViewById(R.id.button);        lv = (ListView)findViewById(R.id.lv);        //设置点击事件        button.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                new Thread(){                    @Override                    public void run() {                        super.run();                        HttpClient defaultHttpClient = new DefaultHttpClient();                        HttpGet httpGet = new HttpGet(url);                        try {                            HttpResponse response = defaultHttpClient.execute(httpGet);                            if (response.getStatusLine().getStatusCode()==200){                                HttpEntity entity = response.getEntity();                                String string = EntityUtils.toString(entity);                                Message message = handler.obtainMessage();                                message.obj=string;                                message.what =1;                                handler.sendMessage(message);                            }                        } catch (IOException e) {                            e.printStackTrace();                        }                    }                }.start();            }        });    }    private class MyAdapter extends BaseAdapter {        @Override        public int getCount() {            return list.size();        }        @Override        public Object getItem(int i) {            return list.get(i);        }        @Override        public long getItemId(int i) {            return i;        }        @Override        public View getView(int i, View view, ViewGroup viewGroup) {            View view1 = View.inflate(MainActivity.this, R.layout.lv_item, null);            TextView title = (TextView) view1.findViewById(R.id.title);            title.setText(list.get(i).getTitle());            return view1;        }    }}

 

原创粉丝点击