HTTPURLConnection+Listview

来源:互联网 发布:查live网络电视直播 编辑:程序博客网 时间:2024/05/29 14:35
package com.example.cai;

import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;

import android.app.Application;

public class Appp extends Application{
       @Override
        public void onCreate() {

            DisplayImageOptions options = new DisplayImageOptions.Builder()
                    .showImageOnLoading(R.drawable.ic_launcher)
                    .displayer(new FadeInBitmapDisplayer(2000)).cacheOnDisk(true)
                    .cacheInMemory(true).build();

            ImageLoaderConfiguration configs = new ImageLoaderConfiguration.Builder(
                    this).defaultDisplayImageOptions(options).threadPoolSize(5)
                    .build();

            ImageLoader.getInstance().init(configs);
            super.onCreate();
        }
    }


=====================================

package com.example.cai;

import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

import bean.Datas;

import com.google.gson.Gson;
import com.nostra13.universalimageloader.core.ImageLoader;

import android.os.AsyncTask;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;

public class MainActivity extends Activity {

    private ListView lv;
    private MyAdapter adapter;
    Datas datas;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        lv = (ListView) findViewById(R.id.lv);
        
        initData();
        
        
        adapter = new MyAdapter();
        
        lv.setAdapter(adapter);
    }
    
    
    
    
    private void initData() {
        // TODO Auto-generated method stub
        new AsyncTask<String , String, String>() {

            @Override
            protected String doInBackground(String... params) {
                // TODO Auto-generated method stub
                return getNetData();
            }

            @Override
            protected void onPostExecute(String result) {
                // TODO Auto-generated method stub
                
                
                Gson gson = new Gson();
                datas = gson.fromJson(result, Datas.class);
                adapter.notifyDataSetChanged();
                Log.i("==========", datas.toString());
                super.onPostExecute(result);
            }
            
            
            
        }.execute();
        
      
    }
    
    
    
    
    protected String getNetData() {
        // TODO Auto-generated method stub
        String result = "";
        try {
            URL url = new URL("https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10&page=0");
              HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                conn.setRequestMethod("GET");
                int code = conn.getResponseCode();
                if(code == 200){
                 InputStream inputStream = conn.getInputStream();
                 ByteArrayOutputStream bos = new ByteArrayOutputStream();
                
                 byte [] buff = new byte[1024];
                 int len = 0;
                 while((len = inputStream.read(buff)) != -1){
                     bos.write(buff, 0, len);
                 }
                 result = bos.toString();
                }
                } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return result;
        
    }




    class MyAdapter extends BaseAdapter{

        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            if (datas != null) {
                return datas.getNewslist().size();
            }
            return 0;
        }

        @Override
        public Object getItem(int position) {
            // TODO Auto-generated method stub
            return null;
        }

        @Override
        public long getItemId(int position) {
            // TODO Auto-generated method stub
            return 0;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            // TODO Auto-generated method stub
            ViewHolder holder;
            if(convertView == null){
                convertView = View.inflate(MainActivity.this, R.layout.item, null);
                holder = new ViewHolder();
                holder.iv = (ImageView) convertView.findViewById(R.id.iv);
                holder.tv = (TextView) convertView.findViewById(R.id.tv);
                convertView.setTag(holder);
            }
            else{
                holder = (ViewHolder) convertView.getTag();
            }
            ImageLoader.getInstance().displayImage(datas.getNewslist().get(position).getPicUrl(), holder.iv);
            holder.tv.setText(datas.getNewslist().get(position).getTitle());
            return convertView;
        }
        
        class ViewHolder{
            ImageView iv;
            TextView tv;
        }
        
    }


}

===========================================

package bean;

import java.util.ArrayList;
import java.util.List;

public class Datas {

    String code;
    String msg;
    List<News> newslist = new ArrayList<News>();
    
    
    
    public String getCode() {
        return code;
    }



    public void setCode(String code) {
        this.code = code;
    }



    public String getMsg() {
        return msg;
    }



    public void setMsg(String msg) {
        this.msg = msg;
    }



    public List<News> getNewslist() {
        return newslist;
    }



    public void setNewslist(List<News> newslist) {
        this.newslist = newslist;
    }



    @Override
    public String toString() {
        return "Datas [code=" + code + ", msg=" + msg + ", newslist="
                + newslist + "]";
    }
    
    
}

====================================

package bean;

public class News {

    String picUrl;
    String title;
    
    
    public String getPicUrl() {
        return picUrl;
    }


    public void setPicUrl(String picUrl) {
        this.picUrl = picUrl;
    }


    public String getTitle() {
        return title;
    }


    public void setTitle(String title) {
        this.title = title;
    }


    @Override
    public String toString() {
        return "News [picUrl=" + picUrl + ", title=" + title + "]";
    }
    
}