123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- package com.example.myapplication;
- import android.content.Context;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.*;
- import java.util.List;
- public class NewsAdapter extends BaseAdapter implements AbsListView.OnScrollListener {
- private List<NewBean> mList;
- private LayoutInflater mInflater;
- private ImageLoader mImageLoader;
- private int mstart,mend;
- public static String[] URLS;
- //是否第一次启动
- private boolean mFirst;
- public NewsAdapter(Context context, List<NewBean> data, ListView listView){
- //构造方法
- mList = data;
- mInflater = LayoutInflater.from(context);
- mImageLoader = new ImageLoader(listView);
- URLS = new String[data.size()];
- for (int i = 0;i < data.size();i++){
- URLS[i] = data.get(i).getPicUrl();
- }
- //绑定监听事件
- listView.setOnScrollListener(this);
- //初始化值
- mFirst = true;
- }
- @Override
- public int getCount() {
- return mList.size();
- }
- @Override
- public Object getItem(int position) {
- return mList.get(position);
- }
- @Override
- public long getItemId(int position) {
- return position;
- }
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- ViewHolder viewHolder = null;
- if(convertView == null){
- viewHolder = new ViewHolder();
- convertView = mInflater.inflate(R.layout.item_layout, null);
- viewHolder.newPic = convertView.findViewById(R.id.new_pic);
- viewHolder.newTitle = convertView.findViewById(R.id.new_title);
- viewHolder.newTime = convertView.findViewById(R.id.new_time);
- viewHolder.newDesc = convertView.findViewById(R.id.new_desc);
- viewHolder.newContent = convertView.findViewById(R.id.new_content);
- convertView.setTag(viewHolder);
- }else{
- viewHolder = (ViewHolder) convertView.getTag();
- }
- viewHolder.newPic.setImageResource(R.mipmap.ic_launcher);
- String url = mList.get(position).getPicUrl();
- viewHolder.newPic.setTag(url);
- //new ImageLoader().showImagerByThread(viewHolder.newPic, mList.get(position).getPicUrl());
- //new ImageLoader().showImageByAsyncTask(viewHolder.newPic, mList.get(position).getPicUrl());
- mImageLoader.showImageByAsyncTask(viewHolder.newPic, mList.get(position).getPicUrl());
- viewHolder.newTitle.setText(mList.get(position).getTitle());
- viewHolder.newTime.setText(mList.get(position).getTime());
- viewHolder.newDesc.setText(mList.get(position).getDesc());
- viewHolder.newContent.setText(mList.get(position).getContentUrl());
- return convertView;
- }
- @Override
- public void onScrollStateChanged(AbsListView view, int scrollState) {
- //滑动状态的时候调用
- if(scrollState == SCROLL_STATE_IDLE){
- //停止滚动的时候
- mImageLoader.loadImages(mstart,mend);
- } else{
- //停止任务
- mImageLoader.cancelAllTasks();
- }
- }
- @Override
- public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
- //滑不滑动都会调用
- mstart = firstVisibleItem;
- mend = firstVisibleItem + visibleItemCount;
- //第一次显示调用
- if(mFirst == true && visibleItemCount > 0){
- mImageLoader.loadImages(mstart,mend);
- mFirst = false;
- }
- }
- class ViewHolder{
- public TextView newTitle, newTime, newDesc, newContent;
- public ImageView newPic;
- }
- }
|