pull+banner

来源:互联网 发布:苹果电脑软件 编辑:程序博客网 时间:2024/05/22 00:13

Main_Activity

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    tools:context="com.example.day1121.MainActivity">    <com.handmark.pulltorefresh.library.PullToRefreshScrollView    android:layout_width="match_parent"    android:layout_height="match_parent"    android:id="@+id/pull">    <LinearLayout        android:layout_width="match_parent"        android:layout_height="match_parent"        android:orientation="vertical">        <com.youth.banner.Banner            android:layout_width="match_parent"            android:layout_height="200dp"            android:id="@+id/banner"></com.youth.banner.Banner>        <com.example.day1121.Mylistview            android:layout_width="match_parent"            android:layout_height="match_parent"            android:id="@+id/lv">        </com.example.day1121.Mylistview>    </LinearLayout></com.handmark.pulltorefresh.library.PullToRefreshScrollView></LinearLayout>
main

package com.example.day1121;import android.os.Handler;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.ListView;import android.widget.ScrollView;import com.example.day1121.Adapter.MyAdapter;import com.example.day1121.Bean.Result;import com.example.day1121.Utils.MimageLoader;import com.example.day1121.Utils.MyTask;import com.google.gson.Gson;import com.handmark.pulltorefresh.library.ILoadingLayout;import com.handmark.pulltorefresh.library.IPullToRefresh;import com.handmark.pulltorefresh.library.PullToRefreshBase;import com.handmark.pulltorefresh.library.PullToRefreshListView;import com.handmark.pulltorefresh.library.PullToRefreshScrollView;import com.youth.banner.Banner;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity {    private Banner banner;    private ListView lv;    private PullToRefreshScrollView scrollview;    private List<String> img_list;    private List<Result.DataBean>list=new ArrayList<>();    private MyAdapter myAdapter;    private int startNum;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        banner=(Banner)findViewById(R.id.banner);       lv=(ListView) findViewById(R.id.lv);        scrollview=(PullToRefreshScrollView)findViewById(R.id.pull);        bann();        init();        initRefreshScrollView();        //请求数据        addToTop();    }    private void addToTop() {        MyTask myTask = new MyTask(new MyTask.Icallbacks() {            @Override            public void updataUiByjson(String jsonstr) {                Gson gson = new Gson();                Result result = gson.fromJson(jsonstr, Result.class);                list = result.getData();                setAdapter();            }        });        myTask.execute("http://api.expoon.com/AppNews/getNewsList/type/1/p/1");    }    private void initRefreshScrollView() {        scrollview.setMode(PullToRefreshBase.Mode.BOTH);        //设置头尾布局显示的文本        ILoadingLayout headerLables=scrollview.getLoadingLayoutProxy(true,false);        headerLables.setPullLabel("下拉刷新");        headerLables.setRefreshingLabel("正在刷新");        headerLables.setReleaseLabel("松开刷新");        ILoadingLayout footerLables=scrollview.getLoadingLayoutProxy(false,true);        footerLables.setPullLabel("上拉加载");        footerLables.setRefreshingLabel("正在加载");        footerLables.setReleaseLabel("松开加载");        //设置监听事件      scrollview.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ScrollView>() {            @Override            public void onPullDownToRefresh(PullToRefreshBase<ScrollView> refreshView) {                //下拉刷新                addToTop();                closeRefresh();            }            @Override            public void onPullUpToRefresh(PullToRefreshBase<ScrollView> refreshView) {                //上拉加载更多                addToBottom();                closeRefresh();            }        });        }    public void addToBottom(){        startNum=startNum+20;        MyTask myTask = new MyTask(new MyTask.Icallbacks() {            @Override            public void updataUiByjson(String jsonstr) {                // Log.i("zzz",jsonstr);                //创建Gson                Gson gson = new Gson();                Result result = gson.fromJson(jsonstr, Result.class);                //将集合添加到list集合                list = result.getData();                // Log.i("aaa",list.toString());                setAdapter();            }        });        myTask.execute("http://api.expoon.com/AppNews/getNewsList/type/1/p/"+startNum);    }    public void closeRefresh(){        new Handler().postDelayed(new Runnable() {            @Override            public void run() {                scrollview.onRefreshComplete();            }        },1000);    }    private void bann() {        img_list = new ArrayList<>();        img_list.add("http://pic8.nipic.com/20100701/5290458_114840036316_2.jpg");        img_list.add("http://pic2.nipic.com/20090424/1468853_230119053_2.jpg");        img_list.add("http://img3.3lian.com/2013/s1/20/d/57.jpg");        img_list.add("http://pic39.nipic.com/20140226/18071023_164300608000_2.jpg");        img_list.add("http://a0.att.hudong.com/15/08/300218769736132194086202411_950.jpg");        banner.setImageLoader(new MimageLoader());        banner.setImages(img_list);        banner.setDelayTime(2000);        banner.isAutoPlay(true);        banner.start();    }            public void setAdapter(){                if(myAdapter==null){                    myAdapter = new MyAdapter(MainActivity.this,list);                    lv.setAdapter(myAdapter);                }else{                    myAdapter.notifyDataSetChanged();                }            }    private void init() {        MyTask myTask = new MyTask(new MyTask.Icallbacks() {            @Override            public void updataUiByjson(String jsonstr) {                // Log.i("zzz",jsonstr);                //创建Gson                Gson gson = new Gson();                Result result = gson.fromJson(jsonstr, Result.class);                //将集合添加到list集合                list = result.getData();                // Log.i("aaa",list.toString());                //设置适配器                setAdapter();            }        });        myTask.execute("http://api.expoon.com/AppNews/getNewsList/type/1/p/1");    }}
Mylistview
package com.example.day1121;import android.content.Context;import android.util.AttributeSet;import android.widget.ListView;/** * Created by DELL on 2017/10/24. */public class Mylistview extends ListView {    public Mylistview(Context context) {        super(context);    }    public Mylistview(Context context, AttributeSet attrs) {        super(context, attrs);    }    public Mylistview(Context context, AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);    }    @Override    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,                MeasureSpec.AT_MOST);        super.onMeasure(widthMeasureSpec, expandSpec);    }}




Myadapter

package com.example.day1121.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.day1121.Bean.Result;import com.example.day1121.R;import com.example.day1121.Utils.ImageloaderUtil;import com.nostra13.universalimageloader.core.ImageLoader;import java.util.List;/** * Created by 张世祥 on 2017/11/21. */public class MyAdapter extends BaseAdapter {    private List<Result.DataBean> list;    private Context context;    public MyAdapter(Context context, List<Result.DataBean> list) {        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 convertView, ViewGroup viewGroup) {        ViewHolder vh;        if (convertView == null) {            vh = new ViewHolder();            convertView = View.inflate(context, R.layout.item_layout, null);            vh.img = (ImageView) convertView.findViewById(R.id.image_view);            vh.tv = (TextView) convertView.findViewById(R.id.text_title);            convertView.setTag(vh);        } else {            vh = (ViewHolder) convertView.getTag();        }        vh.tv.setText(list.get(i).getNews_title());        ImageLoader.getInstance().displayImage(list.get(i).getPic_url(), vh.img, ImageloaderUtil.getImageOptions());        return convertView;    }    class ViewHolder {        private ImageView img;        private TextView tv;    }}

原创粉丝点击