PullToRefreshScrollView的使用
来源:互联网 发布:微信种植系统源码下载 编辑:程序博客网 时间:2024/05/17 00:56
自定义ListView
package bwei.com.zhangteng1219; import android.content.Context; import android.util.AttributeSet; import android.widget.ListView;/** * Created by Zhang.T on 2017/12/19. */public class MyList extends ListView { public MyList(Context context) { super(context); } public MyList(Context context, AttributeSet attrs) { super(context, attrs); } public MyList(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); }}
/////////////////////////////////////
Viewpager 适配器
package bwei.com.zhangteng1219;import android.content.Context;import android.content.Intent;import android.support.v4.view.PagerAdapter;import android.view.MotionEvent;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import com.nostra13.universalimageloader.core.ImageLoader;import java.util.List;import bwei.com.zhangteng1219.Bean.Three;/** * Created by Zhang.T on 2017/12/19. */public class Pageadapter extends PagerAdapter { private Context context; private List<String> pictures; public Pageadapter(Context context, List<String> pictures) { this.context = context; this.pictures = pictures; } @Override public int getCount() { return Integer.MAX_VALUE; } @Override public boolean isViewFromObject(View view, Object object) { return view==object; } @Override public Object instantiateItem(ViewGroup container, final int position) { ImageView image=new ImageView(context); ImageLoader.getInstance().displayImage(pictures.get(position%pictures.size()),image); container.addView(image); image.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { Intent intent = new Intent(context,Main2Activity.class); String url="https://www.baidu.com"; intent.putExtra("url",url); context.startActivity(intent); return true; } }); return image; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); }}//////////////////////////////////////主页面 实现逻辑package bwei.com.zhangteng1219;import android.content.Context;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.v4.view.ViewPager;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.ScrollView;import android.widget.TextView;import android.widget.Toast;import com.google.gson.Gson;import com.handmark.pulltorefresh.library.ILoadingLayout;import com.handmark.pulltorefresh.library.PullToRefreshBase;import com.handmark.pulltorefresh.library.PullToRefreshListView;import com.handmark.pulltorefresh.library.PullToRefreshScrollView;import com.nostra13.universalimageloader.core.ImageLoader;import com.nostra13.universalimageloader.utils.L;import java.util.ArrayList;import java.util.List;import bwei.com.zhangteng1219.Bean.Result;import bwei.com.zhangteng1219.Bean.Three;import bwei.com.zhangteng1219.Bean.Two;import bwei.com.zhangteng1219.Utils.MyTask;import static android.R.attr.author;import static android.R.attr.data;//Viewpager+Hanlder 实现图片轮播// 实现PuLLtoResfresh 下拉刷新 上拉加载//布局//逻辑public class MainActivity extends AppCompatActivity { private adapter adapter; private List<Three.DataBean> datasss=new ArrayList<>(); private int pageIndex=5; private List<Two.DataBean.EssayBean> datas = new ArrayList<>(); private List<Result.ResultBean.DataBean> datass=new ArrayList<>(); private List<String> pictures; private ViewPager mVp; private MyList mLv; private PullToRefreshScrollView mScr; private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); if (msg.what == 1) { mVp.setCurrentItem(mVp.getCurrentItem() + 1); } handler.sendEmptyMessageDelayed(1, 2000); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ConnectivityManager manager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);//2.得到网络信息对象 NetworkInfo networkInfo=manager.getActiveNetworkInfo();//3.进行判断 if(networkInfo!=null && networkInfo.isConnected()){ Toast.makeText(this, "已连接互联网", Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(this, "mei连接互联网", Toast.LENGTH_SHORT).show(); } initView(); LunBo(); intRefreshScrollView(); } private void intRefreshScrollView() { //1.设置模式 mScr.setMode(PullToRefreshBase.Mode.BOTH); //2.通过调用getLoadingLayoutProxy方法,设置下拉刷新状况布局中显示的文字 ,第一个参数为true,代表下拉刷新 ILoadingLayout headLables = mScr.getLoadingLayoutProxy(true, false); headLables.setPullLabel("下拉刷新"); headLables.setRefreshingLabel("正在刷新"); headLables.setReleaseLabel("松开刷新"); //2.设置上拉加载底部视图中显示的文字,第一个参数为false,代表上拉加载更多 ILoadingLayout footerLables = mScr.getLoadingLayoutProxy(false, true); footerLables.setPullLabel("上拉加载"); footerLables.setRefreshingLabel("正在载入..."); footerLables.setReleaseLabel("松开加载更多"); //3.设置监听事件 mScr.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ScrollView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ScrollView> refreshView) { addToTop();//请求网络数据,并更新listview组件 refreshComplete();//数据加载完成后,关闭header,footer } @Override public void onPullUpToRefresh(PullToRefreshBase<ScrollView> refreshView) { addToBottom();//请求网络数据,并更新listview组件 refreshComplete();//数据加载完成后,关闭header,footer } }); } /** * 刷新完成时关闭 */ public void refreshComplete() { new Handler().postDelayed(new Runnable() { @Override public void run() { mScr.onRefreshComplete(); } }, 1000); } public void addToTop(){ MyTask myTask=new MyTask(new MyTask.Icallbacks() { @Override public void updateUiByjson(String jsonstr) { Gson gson=new Gson(); Three three = gson.fromJson(jsonstr, Three.class); //添加到大集合对象中 List<Three.DataBean> data = three.getData(); datasss.addAll(data); //设置适配器 setAdapter(); } }); myTask.execute("http://www.93.gov.cn/93app/data.do?channelId=0&startNum="+pageIndex); } public void addToBottom(){ MyTask myTask=new MyTask(new MyTask.Icallbacks() { @Override public void updateUiByjson(String jsonstr) { Gson gson=new Gson(); Three three = gson.fromJson(jsonstr, Three.class); //添加到大集合对象中 List<Three.DataBean> data = three.getData(); datasss.addAll(data); //设置适配器 setAdapter(); } }); myTask.execute("http://www.93.gov.cn/93app/data.do?channelId=0&startNum="+pageIndex); } private void LunBo() { pictures = new ArrayList<>(); MyTask myTask = new MyTask(new MyTask.Icallbacks() { @Override public void updateUiByjson(String jsonstr){ Gson gson = new Gson(); Three three = gson.fromJson(jsonstr, Three.class); List<Three.DataBean> data = three.getData(); for (Three.DataBean e:data ) { String imageurl = e.getIMAGEURL(); pictures.add(imageurl); } Pageadapter pageadapter = new Pageadapter(MainActivity.this, pictures); mVp.setAdapter(pageadapter); mVp.setCurrentItem(pictures.size() * 1000); handler.sendEmptyMessageDelayed(1, 2000); } }); myTask.execute("http://www.93.gov.cn/93app/data.do?channelId=0&startNum=1"); } public void setAdapter(){ if(adapter==null){ adapter=new adapter(); mLv.setAdapter(adapter); }else{ adapter.notifyDataSetChanged(); } } private void initView() { mVp = (ViewPager) findViewById(R.id.vp); mLv = (MyList) findViewById(R.id.lv); mScr = (PullToRefreshScrollView) findViewById(R.id.Scr); } class adapter extends BaseAdapter{ @Override public int getCount() { return datasss.size(); } @Override public Object getItem(int position) { return datasss.get(position); } @Override public long getItemId(int position) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { Viewholder holder; if (convertView==null) { convertView=View.inflate(MainActivity.this,R.layout.one,null); holder=new Viewholder(); holder.one=convertView.findViewById(R.id.textView); holder.im=convertView.findViewById(R.id.imageView); convertView.setTag(holder); }else { holder=(Viewholder) convertView.getTag(); } holder.one.setText(datasss.get(position).getTITLE()); ImageLoader.getInstance().displayImage(datasss.get(position).getIMAGEURL(),holder.im); return convertView; } } class Viewholder{ TextView one; ImageView im; }}/////////////////////////////布局<?xml version="1.0" encoding="utf-8"?><RelativeLayout 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" tools:context="bwei.com.zhangteng1219.MainActivity" android:orientation="vertical"> <com.handmark.pulltorefresh.library.PullToRefreshScrollView android:id="@+id/Scr" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <android.support.v4.view.ViewPager android:id="@+id/vp" android:layout_width="match_parent" android:layout_height="150dp"> </android.support.v4.view.ViewPager> <bwei.com.zhangteng1219.MyList android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/lv"> </bwei.com.zhangteng1219.MyList> </LinearLayout> </com.handmark.pulltorefresh.library.PullToRefreshScrollView></RelativeLayout>
阅读全文
0 0
- PullToRefreshScrollView的使用
- PullToRefreshScrollView的使用
- PullToRefreshScrollView的使用
- PullToRefreshScrollView的使用
- PullToRefreshScrollView的使用 +Banner
- PullToRefreshscrollview的具体使用
- PullToRefreshScrollView的使用
- PullToRefreshScrollView的使用
- PullToRefreshScrollView的使用
- PullToRefreshScrollView的使用
- PullToRefreshScrollView的使用
- PullToRefreshScrollView的使用
- PullToRefreshScrollView 整体刷新的使用
- 使用PullToRefreshScrollView
- PullToRefreshScrollView的scrollTo方法的使用
- Android PullToRefreshScrollView、AutoHeightListView、AutoScrollViewPager的使用
- 使用pulltorefreshscrollview 嵌套 listview viewpager的配置方式
- 在Fragment中使用PullToRefreshScrollView嵌套Listview问题的解决
- Druid数据库连接池
- 点对点协议 PPP
- shiro-权限控制框架
- C# 生成Json的使用总结
- Electron crash问题
- PullToRefreshScrollView的使用
- Java进阶(五)Junit测试
- linux 创建线程pthread_create
- PHP进阶
- 基于Apache POI导出大数据量Excel的实现
- Java练习题第一套《附答案》
- eclipse下建javaweb项目,创建包时老是和src同一级情况解决
- Java 后端书架
- JavaScript的模块化