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; } }