httpurlconnnection_newstop

来源:互联网 发布:上古世纪人物捏脸数据 编辑:程序博客网 时间:2024/06/07 17:17

MainActivity

package com.example.a02_httpurlconnnection_newstop_03;import android.app.AlertDialog;import android.content.Context;import android.content.DialogInterface;import android.content.Intent;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.provider.Settings;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.view.View;import android.widget.AdapterView;import android.widget.ListView;import com.example.a02_httpurlconnnection_newstop_03.bean.DataBean;import com.example.a02_httpurlconnnection_newstop_03.bean.DataResultBean;import com.google.gson.Gson;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;import java.util.List;public class MainActivity extends AppCompatActivity {    private ListView lv;    private Handler handler = new Handler() {        @Override        public void handleMessage(Message msg) {            if (msg.what == 0) {                DataBean dataBean = (DataBean) msg.obj;                list = dataBean.getResult().getData();                Myadapter adapter = new Myadapter(list, MainActivity.this);                lv.setAdapter(adapter);            }        }    };    private List<DataResultBean> list;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        lv = (ListView) findViewById(R.id.lv);        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {                if (list != null) {                    Intent intent = new Intent(MainActivity.this, Web.class);                    intent.putExtra("url", list.get(i).getUrl());                    startActivity(intent);                }            }        });    }    public void getTop(View view) {        if (isNetConnected()) {            getNetData();        } else {            AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);            builder.setTitle("警告");            builder.setMessage("网络不可用,是否设置?");            builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {                @Override                public void onClick(DialogInterface dialogInterface, int i) {                    Intent intent = new Intent(Settings.ACTION_WIFI_SETTINGS);                    startActivity(intent);                }            });            builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {                @Override                public void onClick(DialogInterface dialogInterface, int i) {                }            });            builder.show();        }    }    private boolean isNetConnected() {        ConnectivityManager manager = (ConnectivityManager) MainActivity.this.getSystemService(Context.CONNECTIVITY_SERVICE);        NetworkInfo networkInfo = manager.getActiveNetworkInfo();        if (networkInfo != null) {            return networkInfo.isAvailable();        }        return false;    }    private void getNetData() {        new Thread() {            @Override            public void run() {                String path = "http://v.juhe.cn/toutiao/index";                try {                    URL url = new URL(path);                    HttpURLConnection connection = (HttpURLConnection) url.openConnection();                    connection.setRequestMethod("POST");                    connection.setConnectTimeout(5000);                    connection.setReadTimeout(5000);                    connection.setDoOutput(true);                    connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");                    String params = "type=top&key=597b4f9dcb50e051fd725a9ec54d6653";                    connection.getOutputStream().write(params.getBytes());                    int responseCode = connection.getResponseCode();                    if (responseCode == 200) {                        InputStream inputStream = connection.getInputStream();                        String json = steamTostring(inputStream, "utf-8");                        Log.i("json", json);                        Gson gson = new Gson();                        DataBean databean = gson.fromJson(json, DataBean.class);                        Message message = Message.obtain();                        message.what = 0;                        message.obj = databean;                        handler.sendMessage(message);                    }                } catch (Exception e) {                    e.printStackTrace();                }            }        }.start();    }    private String steamTostring(InputStream inputStream, String check) {        try {            InputStreamReader inputStreamReader = new InputStreamReader(inputStream, check);            BufferedReader bufferedReader = new BufferedReader(inputStreamReader);            StringBuffer buffer = new StringBuffer();            String s = null;            while ((s = bufferedReader.readLine()) != null) {                buffer.append(s);            }            bufferedReader.close();            return buffer.toString();        } catch (IOException e) {            e.printStackTrace();        }        return null;    }}
----------------------------------------------------------------
Myadapter
----------------------------------------------------------------
package com.example.a02_httpurlconnnection_newstop_03;import android.content.Context;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;import com.example.a02_httpurlconnnection_newstop_03.bean.DataResultBean;import java.util.List;/** * Created by lenovo on 2017/9/8. */public class Myadapter extends BaseAdapter {    List<DataResultBean> list;    Context context;    public Myadapter(List<DataResultBean> list, Context context) {        this.list = list;        this.context = context;    }    @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) {        ViewHolder holder;        if (view == null) {            view = view.inflate(context, R.layout.items, null);            holder = new ViewHolder();            holder.tv1 = (TextView) view.findViewById(R.id.tv1);            holder.tv2 = (TextView) view.findViewById(R.id.tv1);            holder.tv3 = (TextView) view.findViewById(R.id.tv1);            holder.iv1 = (ImageView) view.findViewById(R.id.iv1);            holder.iv2 = (ImageView) view.findViewById(R.id.iv2);            holder.iv3 = (ImageView) view.findViewById(R.id.iv3);            view.setTag(holder);        } else {            holder = (ViewHolder) view.getTag();        }        holder.tv1.setText(list.get(i).getAuthor_name());        holder.tv2.setText(list.get(i).getTitle());        holder.tv3.setText(list.get(i).getDate());        new ImageUtil().getImage(list.get(i).getThumbnail_pic_s(), holder.iv1);        new ImageUtil().getImage(list.get(i).getThumbnail_pic_s02(), holder.iv2);        new ImageUtil().getImage(list.get(i).getThumbnail_pic_s03(), holder.iv3);        return view;    }    class ViewHolder {        TextView tv1;        TextView tv2;        TextView tv3;        ImageView iv1;        ImageView iv2;        ImageView iv3;    }}
---------------------------------------------------------------------------------
ImageUtil
---------------------------------------------------------------------------------
package com.example.a02_httpurlconnnection_newstop_03;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.Handler;import android.os.Message;import android.widget.ImageView;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;/** * Created by lenovo on 2017/9/8. */public class ImageUtil {    ImageView iv;    private Handler handler = new Handler() {        @Override        public void handleMessage(Message msg) {            Bitmap bitmap = (Bitmap) msg.obj;            iv.setImageBitmap(bitmap);        }    };    public void getImage(final String path, ImageView iv) {        new Thread() {            @Override            public void run() {                try {                    URL url = new URL(path);                    HttpURLConnection connection = (HttpURLConnection) url.openConnection();                    connection.setRequestMethod("GET");                    connection.setReadTimeout(5000);                    connection.setConnectTimeout(5000);                    int responseCode = connection.getResponseCode();                    if (responseCode == 200) {                        InputStream inputStream = connection.getInputStream();                        Bitmap bitmap = BitmapFactory.decodeStream(inputStream);                        Message message = Message.obtain();                        message.what = 0;                        message.obj = bitmap;                    }                } catch (Exception e) {                    e.printStackTrace();                }            }        }.start();    }}

--------------------------------------------------------------------------------------------------------

Web

--------------------------------------------------------------------------------------------------------

package com.example.a02_httpurlconnnection_newstop_03;import android.content.Intent;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.webkit.WebSettings;import android.webkit.WebView;import android.webkit.WebViewClient;/** * Created by lenovo on 2017/9/8. */public class Web extends AppCompatActivity {    private WebView web;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.web);        web = (WebView) findViewById(R.id.web);        Intent intent = getIntent();        String url = intent.getStringExtra("url");        web.loadUrl(url);        web.setWebViewClient(new WebViewClient());        WebSettings settings = web.getSettings();        settings.setJavaScriptEnabled(true);        settings.setJavaScriptCanOpenWindowsAutomatically(true);    }}