二DrawerLayout侧滑 Xlistview 接口获取数据 ImgageLoder
来源:互联网 发布:长虹网络电视机顶盒 编辑:程序博客网 时间:2024/06/05 00:09
//在清单文件上写的类名 继承 Application 还有权限public class App extends Application { @Override public void onCreate() { super.onCreate(); //图片 ImageLoaderConfiguration build = new ImageLoaderConfiguration.Builder(this).build(); ImageLoader.getInstance().init(build); }}//上下拉package com.example.chaixiaokai20170909;import android.os.AsyncTask;import android.os.Handler;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;import com.google.gson.Gson;import com.nostra13.universalimageloader.core.ImageLoader;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;public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener{ private XListView xlv; List<User.NewslistBean> arr=new ArrayList<>(); private Madapter madapter; private Handler handler; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); xlv =(XListView)findViewById(R.id.xlv); xlv.setPullLoadEnable(true);//必须加 xlv.setXListViewListener(this);//接口实现刷新 new MasatTask().execute("https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10"); madapter = new Madapter();//创建适配器 xlv.setAdapter(madapter); handler = new Handler();//主线程 } //停止刷新 public void close(){ xlv.stopRefresh(); xlv.stopLoadMore(); xlv.setRefreshTime("刚刚"); } //刷新 @Override public void onRefresh() { handler.postDelayed(new Runnable() { @Override public void run() { arr.clear(); new MasatTask().execute("https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10"); close(); } },2000); } //加载 @Override public void onLoadMore() { handler.postDelayed(new Runnable() { @Override public void run() { new MasatTask().execute("https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10"); close(); } },2000); } //适配器 class Madapter extends BaseAdapter{ @Override public int getCount() { return arr.size(); } @Override public Object getItem(int position) { return arr.get(position); } @Override public long getItemId(int position) { return position; } //优化 @Override public View getView(int position, View convertView, ViewGroup parent) { User.NewslistBean bean = arr.get(position); ViewHolder vh; if (convertView==null){ convertView = View.inflate(MainActivity.this, R.layout.list_item, null); vh = new ViewHolder(); vh.img=(ImageView) convertView.findViewById(R.id.img); vh.tv=(TextView) convertView.findViewById(R.id.tv); convertView.setTag(vh); }else{ vh=(ViewHolder) convertView.getTag(); } //ImageLoader 获取图片 ImageLoader.getInstance().displayImage(arr.get(position).getPicUrl(),vh.img); vh.tv.setText(arr.get(position).getTitle()); return convertView; } class ViewHolder{ ImageView img; TextView tv; } } //异步 class MasatTask extends AsyncTask<String,Void,String>{ @Override protected void onPreExecute() { super.onPreExecute(); } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson = new Gson(); User user = gson.fromJson(s, User.class); List<User.NewslistBean> newslist = user.getNewslist(); arr.addAll(newslist);//添加新数据 madapter.notifyDataSetChanged();//刷新适配器 } @Override protected void onProgressUpdate(Void... values) { super.onProgressUpdate(values); } @Override protected String doInBackground(String... params) { try { URL url = new URL(params[0]); HttpURLConnection urlConnection = (HttpURLConnection)url.openConnection(); int responseCode = urlConnection.getResponseCode(); if (responseCode==200){ InputStream inputStream = urlConnection.getInputStream(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); StringBuilder builder = new StringBuilder(); String string=""; while ((string=bufferedReader.readLine())!=null){ builder.append(string); } return builder.toString(); } } catch (Exception e) { e.printStackTrace(); } return null; } }}
阅读全文
0 0
- 二DrawerLayout侧滑 Xlistview 接口获取数据 ImgageLoder
- DrawerLayout侧滑+ViewPager(n个网址)+XLIstView(左右滑动有数据)
- DrawerLayout与XlistView结合
- DrawerLayout侧滑+Image-Loader+XListView+上拉下拉 Y
- 二包Drawerlayout 侧滑
- XListView+ImageLoader+AsyncTask+网络获取数据综合
- OkHttp获取数据,xlistview显示popwod弹框
- Banner轮播 + XlistView 网络获取数据
- DrawerLayout,TabLayout和xlistview网络请求数据(类似今日头条)
- 轮播图+xlistview异步请求的数据+imglode获取图片数据
- DrawerLayout侧滑菜单点击切换Xlistview
- 利用XListView获取数据库数据(未分页版)
- ImageLoader,GET,POST获取数据,多条目加载,XListView
- 实现侧栏,为Xlistview获取网络数据
- Fragment隐藏显示与DrawerLayout侧拉 Banner与PullToRefreshListView 和 Banner与xlistview分类加载数据
- WEEK2--DrawerLayout 和 ListView 获取网络数据并展示
- WEEK2--DrawerLayout 和 ListView 获取网络数据并展示
- 天气预报 接口数据获取
- Hibernate之HibernateTemplate的封装以及匿名内部类的使用
- .NET 4.0下的观察者模式
- Linux如何利用容器轻松应对性能工程?
- python机器学习4-4代码及运行结果
- 在windows上使用ssh,scp
- 二DrawerLayout侧滑 Xlistview 接口获取数据 ImgageLoder
- 新项目上传之svn服务器
- 双向链表翻转
- 工厂设计模式
- 排序算法总结
- export default 、 export 和import 区别
- Js 相等与全等的区别
- LeetCode
- 使用VLC media player搭建简单的流媒体服务器