Android_请求网络数据展示到Listview
2017-09-03 18:33
471 查看
package activity.example.com.day; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.AsyncTask; import android.os.Handler; import android.os.Message; import android.provider.ContactsContract; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.view.menu.BaseMenuPresenter; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; import com.google.gson.Gson; import com.google.gson.JsonElement; import org.w3c.dom.Text; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.util.ArrayList; import java.util.List; import activity.example.com.day.com.bawei.bean.Bean; import activity.example.com.day.com.bawei.bean.Bean2; import activity.example.com.day.com.bawei.bean.Data; public class Main2Activity extends AppCompatActivity { private ListView lv; private String urll; private Gson gson; List<Data> list = new ArrayList<Data>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); lv = (ListView)findViewById(R.id.lv); ass(); } public String ass(){ new Thread(){ private StringBuilder builder; @Override public void run() { super.run(); try { URL url = new URL("http://api.expoon.com/AppNews/getNewsList/type/1/p/1"); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); int code = urlConnection.getResponseCode(); if(code==200) { InputStream inputStream = urlConnection.getInputStream(); BufferedReader bf = new BufferedReader(new InputStreamReader(inputStream)); builder = new StringBuilder(); String s = ""; while ((s = bf.readLine()) != null) { builder.append(s); } Message message = Message.obtain(); message.obj=builder.toString(); Handler.sendMessage(message); } } catch (Exception e) { e.printStackTrace(); } } }.start(); return null; } Handler Handler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); gson = new Gson(); Bean bean = gson.fromJson((String) msg.obj, Bean.class); List<Data> data = bean.getData(); for(int i=0;i<data.size();i++){ list.add(new Data(data.get(i).getNews_id(),data.get(i).getNews_summary(),data.get(i).getNews_title(),data.get(i).getPic_url())); } lv.setAdapter(new Adapter()); } }; class Adapter 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; } class ViewHowder{ ImageView img; TextView tv; } @Override public View getView(int i, View view, ViewGroup viewGroup) { Data data = list.get(i); ViewHowder howder = new ViewHowder(); if(view==null){ view=View.inflate(Main2Activity.this,R.layout.lv,null); howder.img = (ImageView) view.findViewById(R.id.imageView2); howder.tv = (TextView)view.findViewById(R.id.textView); view.setTag(howder); }else{ howder = (ViewHowder) view.getTag(); } howder.tv.setText(data.getNews_title()); new MyASynctask(howder.img).execute(data.getPic_url()); return view; } } class MyASynctask extends AsyncTask<String,Void,Bitmap>{ private ImageView img; private Bitmap bitmap; public MyASynctask(ImageView img){ this.img=img; } @Override protected Bitmap doInBackground(String... strings) { try { URL url = new URL(strings[0]); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); InputStream inputStream = urlConnection.getInputStream(); bitmap = BitmapFactory.decodeStream(inputStream); } catch (Exception e) { e.printStackTrace(); } return bitmap; } @Override protected void onPostExecute(Bitmap bitmap) { super.onPostExecute(bitmap); img.setImageBitmap(bitmap); } } }
相关文章推荐
- android MVP+Retrofit2.0与RxJava网络请求数据,listview展示
- 网络数据请求展示为无限轮播图 ViewPager+XListView+Fragment+ImageLoader
- android中通过网络请求数据显示在Listview中,面对许多的item,如何给每个item设置点击事件以跳转到不同的activity
- 使用 Xlistview 展示网络请求数据
- 网络请求+XListView展示数据
- Android_XListView请求网络数据
- OkHttp请求网络数据,并listview展示
- Android---------通过OkHttp网络请求利用RecyclerView展示数据
- 点击侧滑任何一个 菜单项,请求网络数据展示在主界面的xlistview中且实现下拉刷新效果和上拉加载的分页加载数据效果
- Android通过请求网络数据实现ListView,ListView的优化、图片的缓存、子控件的点击事件。
- Android--使用原生技术实现ListView(原生技术实现网络异步请求,解析json数据)
- android中网络请求数据,解析并添加到Listview中
- Android使用OKHTTP网络框架请求数据,RecyclerView结合Glide展示图片,瀑布流布局样式
- 使用OkHttp网络请求+Fresco图片显示把请求到的数据展示到ListView上
- 网络请求+ListView展示数据+数据库
- xListView主页面请求网络数据展示到listView的三个步骤
- Android studio请求网络数据ListView异步加载展示文字条目 ImageLoadler加载图片
- 文章标题 listview网络请求数据展示
- ListView多条目展示 请求网络数据 和图片
- ListView展示 网络请求的数据, 并LoaderImage请求网络图片