异步+listview展示网页面效果

来源:互联网 发布:社区门诊软件 编辑:程序博客网 时间:2024/05/17 01:57
package com.example.adminjs.lianxi;import android.content.Context;import android.content.Intent;import android.os.AsyncTask;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.ListView;import com.example.adminjs.lianxi.Adapter.MyAdapter;import com.example.adminjs.lianxi.Bean.DataBean;import com.example.adminjs.lianxi.Bean.ResultBean;import com.google.gson.Gson;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.io.UnsupportedEncodingException;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.util.ArrayList;public class MainActivity extends AppCompatActivity {    private ArrayList<ResultBean> list;    private MyAdapter myAdapter;    private ListView listView;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        listView = (ListView) findViewById(R.id.listview);        list = new ArrayList<>();              into();        listView.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, WebActivity.class);                    intent.putExtra("url",list.get(i).getUrl());                    startActivity(intent);                }            }        });    }    private void into() {        MyTask myTask = new MyTask();       myTask.execute("http");    }        class MyTask extends AsyncTask<String, Void, String> {            @Override            protected String doInBackground(String... strings) {                          if ("http".equals(strings[0])){                String path = "http://v.juhe.cn/weixin/query?key=88f7bbc507e3ecacfaeab2b47dd8936f";                try {                    URL url = new URL(path);                    HttpURLConnection connection = (HttpURLConnection) url.openConnection();                    connection.setRequestMethod("GET");                    connection.setConnectTimeout(5000);                    connection.setReadTimeout(5000);                    int responseCode = connection.getResponseCode();                    if (responseCode == 200) {                        InputStream inputStream = connection.getInputStream();                        String json = streamTostring(inputStream, "utf-8");                        return json;                    }                } catch (Exception e) {                    e.printStackTrace();                }                        }                return null;            }            @Override            protected void onPostExecute(String s) {                Gson gson = new Gson();                DataBean dataBean = gson.fromJson(s, DataBean.class);                if (dataBean != null) {                    list.addAll(dataBean.getResult().getList());                    setAdapter();                }            }        }    private void setAdapter() {        if (myAdapter == null){            myAdapter = new MyAdapter(list, MainActivity.this);            listView.setAdapter(myAdapter);        }else{            myAdapter.notifyDataSetChanged();        }    }    private String streamTostring(InputStream inputstream,String charset){        try {            InputStreamReader inputStreamReader = new InputStreamReader(inputstream, charset);            BufferedReader bufferedReader = new BufferedReader(inputStreamReader);            StringBuilder builder = new StringBuilder();            String s = null;            while ((s = bufferedReader.readLine())!= null){                builder.append(s);            }            bufferedReader.close();            return builder.toString();        } catch (Exception e) {            e.printStackTrace();        }        return  null;    }

}

package com.example.adminjs.lianxi.Adapter;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.adminjs.lianxi.Bean.ResultBean;import com.example.adminjs.lianxi.R;import com.nostra13.universalimageloader.core.ImageLoader;import java.util.List;/** * Created by Adminjs on 2017/9/5. */public class MyAdapter extends BaseAdapter{    List<ResultBean>list;    Context context;    public MyAdapter(List<ResultBean> 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.item_layout,null);            holder = new ViewHolder();            holder.image = (ImageView)view.findViewById(R.id.image);            holder.source = (TextView)view.findViewById(R.id.source);            holder.title = (TextView)view.findViewById(R.id.title);            view.setTag(holder);        }else{            holder = (ViewHolder) view.getTag();        }        holder.source.setText(list.get(i).getSource());        holder.title.setText(list.get(i).getTitle());        String firstImg = list.get(i).getFirstImg();        ImageLoader instance = ImageLoader.getInstance();        instance.displayImage(firstImg,holder.image);        return view;    }    class ViewHolder{        ImageView image;        TextView source;        TextView title;    }}



public class WebActivity extends Activity{    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.web_layout);        WebView webView = (WebView)findViewById(R.id.web_view);        Intent intent = getIntent();        String url = intent.getStringExtra("url");        webView.loadUrl(url);        webView.setWebViewClient(new WebViewClient());        WebSettings settings = webView.getSettings();        settings.setJavaScriptEnabled(true);        settings.setJavaScriptCanOpenWindowsAutomatically(true);    }}


public class Util extends Application{    @Override    public void onCreate() {        ImageLoaderConfiguration aDefault = ImageLoaderConfiguration.createDefault(getApplicationContext());        ImageLoader.getInstance().init(aDefault);    }}
public class Util extends Application{    @Override    public void onCreate() {        ImageLoaderConfiguration aDefault = ImageLoaderConfiguration.createDefault(getApplicationContext());        ImageLoader.getInstance().init(aDefault);    }}


<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.example.adminjs.lianxi">    <uses-permission android:name="android.permission.INTERNET"/>    <application        android:name=".Bean.Util.Util"        android:allowBackup="true"        android:icon="@mipmap/ic_launcher"        android:label="@string/app_name"        android:supportsRtl="true"        android:theme="@style/AppTheme">        <activity android:name=".MainActivity">            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>        <activity android:name=".WebActivity"/>    </application></manifest>

原创粉丝点击