网络请求+webview

package com.bwei.Test.zhangjian20170812lianxi02.Activity;

import android.content.Intent;
import android.graphics.Path;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import com.bwei.Test.zhangjian20170812lianxi02.MyBean.Bean;
import com.bwei.Test.zhangjian20170812lianxi02.R;
import com.bwei.imageloaderlibrary.ImageLoaderUtils;
import com.google.gson.Gson;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;

import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;

public class MyActivity extends AppCompatActivity {

    private String path="http://ic.snssdk.com/2/article/v25/stream/?category=news_tech&count=20&bd_latitude=4.9E-324&bd_longitude=4.9E-324&bd_loc_time=1457695555&loc_mode=5&lac=4527&cid=28883&iid=3835029558&device_id=12211880440&ac=wifi&channel=baidu&aid=13&app_name=news_article&version_code=460&device_platform=android&device_type=iToolsAVM&os_api=19&os_version=4.4.4&uuid=352284041361761&openudid=84c1c7b192991cc6";
    private List<Bean.DataBean> list;
    private ListView listView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my);
        listView= (ListView) findViewById(R.id.listview);
        MyAsayTask task=new MyAsayTask();
        task.execute(path);
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Intent it=new Intent(MyActivity.this,MyWebView.class);
                String display_url = list.get(position).getDisplay_url();
                if (display_url!=null){
                    it.putExtra("path",list.get(position).getDisplay_url());
                    startActivity(it);
                }

            }
        });
    }

    class MyAsayTask extends AsyncTask<String,Integer,String>{


        @Override
        protected String doInBackground(String... params) {
            try {
                URL url=new URL(path);
                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                connection.setReadTimeout(5000);
                connection.setRequestMethod("POST");
                if (connection.getResponseCode()==200){
                    InputStream inputStream = connection.getInputStream();
                    byte[] bytes=new byte[1024];
                    int len=0;
                    ByteArrayOutputStream arrayOutputStream=new ByteArrayOutputStream();
                    while ((len=inputStream.read(bytes))!=-1){
                        arrayOutputStream.write(bytes,0,len);
                    }
                    return arrayOutputStream.toString("utf-8");
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            Gson gson=new Gson();
            Bean bean = gson.fromJson(s, Bean.class);
            list = bean.getData();
            MyAdapter adapter=new MyAdapter();
            listView.setAdapter(adapter);


        }
    }

    class MyAdapter extends BaseAdapter{

        private int TYPE_1=0;
        private int TYPE_2=1;
        private int TYPE_3=2;

        @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;
            int type=getItemViewType(position);
            if (convertView==null){
                holder=new ViewHolder();
                switch (type){
                    case 0:
                        convertView=View.inflate(MyActivity.this,R.layout.item01,null);
                        holder.textView= (TextView) convertView.findViewById(R.id.title);
                        holder.textView2= (TextView) convertView.findViewById(R.id.source);
                        convertView.setTag(holder);
                        break;
                    case 1:
                        convertView=View.inflate(MyActivity.this,R.layout.item02,null);
                        holder.textView= (TextView) convertView.findViewById(R.id.title);
                        holder.textView2= (TextView) convertView.findViewById(R.id.source);
                        holder.imageView= (ImageView) convertView.findViewById(R.id.imageView4);
                        convertView.setTag(holder);
                        break;
                    case 2:
                        convertView=View.inflate(MyActivity.this,R.layout.item03,null);
                        holder.textView= (TextView) convertView.findViewById(R.id.title);
                        holder.textView2= (TextView) convertView.findViewById(R.id.source);
                        holder.imageView= (ImageView) convertView.findViewById(R.id.imageView1);
                        holder.imageView2= (ImageView) convertView.findViewById(R.id.imageView2);
                        holder.imageView3= (ImageView) convertView.findViewById(R.id.imageView3);
                        convertView.setTag(holder);
                        break;
                }
            }else {
                holder= (ViewHolder) convertView.getTag();
            }

            DisplayImageOptions options = ImageLoaderUtils.getOptions();
            switch (type){
                case 0:
                    holder.textView.setText(list.get(position).getTitle());
                    holder.textView2.setText(list.get(position).getSource());
                    break;
                case 1:
                    holder.textView.setText(list.get(position).getTitle());
                    holder.textView2.setText(list.get(position).getSource());
                    ImageLoader.getInstance().displayImage(list.get(position).getUrl(),holder.imageView4,options);
                    break;
                case 2:
                    holder.textView.setText(list.get(position).getTitle());
                    holder.textView2.setText(list.get(position).getSource());
                    ImageLoader.getInstance().displayImage(list.get(position).getImage_list().get(0).getUrl(),holder.imageView,options);
                    ImageLoader.getInstance().displayImage(list.get(position).getImage_list().get(1).getUrl(),holder.imageView2,options);
                    ImageLoader.getInstance().displayImage(list.get(position).getImage_list().get(2).getUrl(),holder.imageView3,options);
                    break;
            }
            return convertView;
        }

        @Override
        public int getViewTypeCount() {
            return 3;
        }

        @Override
        public int getItemViewType(int position) {
            if (list.get(position).getImage_list()==null){
                return TYPE_1;
            }else if (list.get(position).getImage_list().size()==1){
                return TYPE_2;
            }else if (list.get(position).getImage_list().size()==3){
                return TYPE_3;
            }
            return TYPE_1;
        }
    }

    class ViewHolder{
        TextView textView,textView2;
        ImageView imageView,imageView2,imageView3,imageView4;
    }

}

//webview接受参数

package com.bwei.Test.zhangjian20170812lianxi02.Activity;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

import com.bwei.Test.zhangjian20170812lianxi02.R;

public class MyWebView extends AppCompatActivity {

    private WebView webView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my_web_view);
        webView= (WebView) findViewById(R.id.wv);
        Intent it=getIntent();
        String path = it.getStringExtra("path");
        settings();
        webView.loadUrl(path);

    }

    public void settings(){
        WebSettings settings = webView.getSettings();
        settings.setJavaScriptEnabled(true);
        settings.setJavaScriptCanOpenWindowsAutomatically(true);
        webView.setWebViewClient(new WebViewClient(){});
        webView.setWebChromeClient(new WebChromeClient(){});
    }
}














评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值