Xlistview和ImageLoader
来源:互联网 发布:大数据 技术 图 编辑:程序博客网 时间:2024/06/07 06:56
在清单文件中配置
<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>在application中配置android:name=".Mapp"在build.grable下配置compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
compile 'com.google.code.gson:gson:2.2.4'implementation project(':xlistviewlibrary')//添加xlistviewlibrary项目public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener{ // ImagesUtils imagUtils; private String NetString="https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10"; private List<TextBean.NewslistBean> list=new ArrayList<TextBean.NewslistBean>(); private MyAdapter adapter; private ImageLoader instance; private XListView xListView;//implements XListView.IXListViewListener @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); xListView = (XListView) findViewById(R.id.xlistview); instance = ImageLoader.getInstance(); getNetData(); adapter = new MyAdapter(); xListView.setAdapter(adapter); xListView.setPullLoadEnable(true); //让XListView有上拉加载的功能; xListView.setXListViewListener(this);// 接口回调要把接口实现类设置进去, MainActivity就是(XListViewListener)它的实现了 } private void getNetData() { new MyAsyncTask().execute(NetString); } private class MyAsyncTask extends AsyncTask<String,Void,String> { @Override protected String doInBackground(String... strings) { return Utils.getNetString(strings[0]); } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson=new Gson(); TextBean json = gson.fromJson(s, TextBean.class); //得到集合; List<TextBean.NewslistBean> newslist = json.getNewslist(); //把从网络解析的数据放到adapter使用的集合里; list.addAll(newslist); adapter.notifyDataSetChanged(); uiComplete();// 让刷新头 或者刷新底部ui返回; } } private class MyAdapter extends BaseAdapter { private ViewHolder vh; private TextView ctime; private TextView title; private TextView description; private ImageView img; @Override public int getCount() { return list.size(); } @Override public Object getItem(int i) { return null; } @Override public long getItemId(int i) { return 0; } @Override public View getView(int i, View view, ViewGroup viewGroup) { if (view==null){ vh = new ViewHolder(); view = View.inflate(MainActivity.this, R.layout.item, null); view.setTag(vh); }else{ vh = (ViewHolder) view.getTag(); } vh.ctime = view.findViewById(R.id.item_ctime); vh.title = view.findViewById(R.id.item_title); vh.description = view.findViewById(R.id.item_description); vh.img = view.findViewById(R.id.item_img); vh.ctime.setText(list.get(i).getCtime()); vh.title.setText(list.get(i).getTitle()); vh.description.setText(list.get(i).getDescription()); instance.displayImage(list.get(i).getPicUrl(),vh.img, Utils.getDisplayImageOption()); return view; } } class ViewHolder{ TextView ctime; TextView title; TextView description; ImageView img; } /** * 下拉刷新 */ @Override public void onRefresh() { list.clear(); getNetData(); } /** * 上拉加载 */ @Override public void onLoadMore() { getNetData(); } /** * 让刷新头 或者刷新底部ui返回; */ private void uiComplete(){ xListView.stopRefresh();//停止刷新 xListView.stopLoadMore();//停止上拉加载更多 xListView.setRefreshTime("刚刚"); }}//main布局<com.bwie.xlistviewlibrary.View.XListView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/xlistview" ></com.bwie.xlistviewlibrary.View.XListView>//子布局<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="1" android:layout_marginTop="40px" android:id="@+id/item_description" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="2" android:layout_marginTop="15px" android:id="@+id/item_title" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="3" android:layout_marginTop="15px" android:id="@+id/item_ctime" /> </LinearLayout> <ImageView android:layout_width="200px" android:layout_height="200px" android:src="@mipmap/ic_launcher" android:id="@+id/item_img" /></LinearLayout>
阅读全文
0 0
- Xlistview和ImageLoader
- XListview + imageLoader !!
- xlistview和ImageLoader综合练习 图片框架及形态
- XListView+ImageLoader+AsyncTask+网络获取数据综合
- fragment+Xlistview+viewpager无限轮播+imageloader
- 轮播图加载Imageloader图片,Xlistview上拉下拉
- ImageLoader,GET,POST获取数据,多条目加载,XListView
- HttpUtils和XlistView
- 轮播和Xlistview
- 横向菜单和xlistview
- xlistView和侧滑
- ImageLoader和Photoview
- ImageLoader和MyAsyncTask
- ImageLoader和Picasso
- imageloader和glide
- XListView
- XListView
- Xlistview
- Linux基础之十
- Spring中 @Autowired标签与 @Resource标签 的区别
- Tensorflow Tensorboard 空白解决
- Django模板中嵌入markdown+mathjax
- 文件重定向
- Xlistview和ImageLoader
- http
- ubuntu16下python3 + flask环境搭建
- 对RESTFUL理解
- LeetCode题库——TwoSum
- 1.2换行输出
- ACM-ICPC World Finals 2017
- ionic滑动
- drop_caches Linux清空缓存