XRecyclerView 上拉加载 下拉刷新
来源:互联网 发布:同城配送软件 编辑:程序博客网 时间:2024/05/21 22:43
//对应xml布局
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main3" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.eightgroup.zk3lx.Main3Activity"><com.jcodecraeer.xrecyclerview.XRecyclerView android:id="@+id/list" android:layout_width="wrap_content" android:layout_height="match_parent"></com.jcodecraeer.xrecyclerview.XRecyclerView></RelativeLayout>
//对应多条目的两个item.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tv" /> <ImageView android:layout_below="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/img" /></RelativeLayout>
//依赖包相关权限
compile 'com.jcodecraeer:xrecyclerview:1.3.2'
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <application android:name=".app.MyApp"
//下面就是主页面
public class Main3Activity extends AppCompatActivity { String uri="http://tingapi.ting.baidu.com/v1/restserver/ting?method=baidu.ting.billboard.billList&type=1&size=10&offset=0 http://tingapi.ting.baidu.com/v1/restserver/ting?method=baidu.ting.billboard.billList&type=1&size=10&offset=0 "; private XRecyclerView list; private HomeAdapter mAdapter; List<News.SongListBean> song_list; ImageLoader imagerloder; int i; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main3); /* mRecyclerView = (RecyclerView) findViewById(R.id.id_recyclerview);*/ list = (XRecyclerView)findViewById(R.id.list); //listview的效果 list.setLayoutManager(new LinearLayoutManager(this)); //上啦下拉的监听 list.setLoadingListener(new XRecyclerView.LoadingListener() { @Override public void onRefresh() { getData(uri); list.refreshComplete(); } @Override public void onLoadMore() { getData(uri); list.loadMoreComplete(); } }); getData(uri); } private void getData(String uri) { OkHttp3Utils.getInstance().doGet(uri, new GsonObjectCallback<News>(){ @Override public void onUi(News news) { song_list = news.getSong_list(); list.setAdapter(mAdapter = new HomeAdapter()); } @Override public void onFailed(Call call, IOException e) { } }); } class HomeAdapter extends RecyclerView.Adapter { @Override public XRecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { //多条目判断用哪个Hoderl if(getItemViewType(viewType)==1) { MyViewHolder holder = new MyViewHolder(LayoutInflater.from( Main3Activity.this).inflate(R.layout.layout1, parent, false)); return holder; }else { MyViewHolder2 holder2 = new MyViewHolder2(LayoutInflater.from( Main3Activity.this).inflate(R.layout.layout2, parent, false)); return holder2; } //=============== } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { if(getItemViewType(position)==1) { MyViewHolder holder1 = (MyViewHolder) holder; holder1.tv.setText(song_list.get(position).getTitle()); imagerloder = ImageLoader.getInstance(); imagerloder.displayImage(song_list.get(position).getPic_big(), holder1.img); // 获得该控件的所有属性 /* ViewGroup.LayoutParams layoutParams = holder.tv.getLayoutParams(); Random random = new Random(); layoutParams.height = random.nextInt(200) + 50; holder.tv.setLayoutParams(layoutParams);*/ }else { MyViewHolder2 holder2 = (MyViewHolder2) holder; holder2.tv1.setText(song_list.get(position).getTitle()); imagerloder = ImageLoader.getInstance(); imagerloder.displayImage(song_list.get(position).getPic_big(), holder2.img1); // 获得该控件的所有属性 /* ViewGroup.LayoutParams layoutParams = holder.tv.getLayoutParams(); Random random = new Random(); layoutParams.height = random.nextInt(200) + 50; holder.tv.setLayoutParams(layoutParams);*/ } } @Override public int getItemCount() { return song_list.size(); } class MyViewHolder extends RecyclerView.ViewHolder { ImageView img; TextView tv; public MyViewHolder(View view) { super(view); tv = (TextView) view.findViewById(R.id.tv); img = (ImageView) view.findViewById(R.id.img); } } // 对应第二个View class MyViewHolder2 extends RecyclerView.ViewHolder { ImageView img1; TextView tv1; public MyViewHolder2(View view) { super(view); tv1 = (TextView) view.findViewById(R.id.tv1); img1= (ImageView) view.findViewById(R.id.img1); } }//返回的类型 @Override public int getItemViewType(int position) { if(position%2==0){ return 2; }else { return 1; } } } }
public class MyApp extends Application { public static MyApp mInstance; @Override public void onCreate() { super.onCreate(); mInstance = this; ImageLoaderConfiguration imgeLoader = ImageLoaderConfiguration.createDefault(getApplicationContext()); ImageLoader.getInstance().init(imgeLoader); } public static MyApp getInstance() { return mInstance; }}//点击跳转 监听
mAdapter.setOnItemClickLitener(new HomeAdapter.OnItemClickLitener() { @Override public void onItemClick(View view, int position) { Toast.makeText(getActivity(), position + " click", Toast.LENGTH_SHORT).show(); Intent intent = new Intent(getActivity(),Main3Activity.class); intent.putExtra("name",song_list.get(position).getAlbum_title().toString()); intent.putExtra("song",song_list.get(position).getPic_big().toString()); startActivity(intent); } @Override public void onItemLongClick(View view, int position) { Toast.makeText(getActivity(), position + " long click", Toast.LENGTH_SHORT).show(); } });//跳转接收
public class Main3Activity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main3); String name = getIntent().getStringExtra("name"); ImageView imageView = (ImageView)findViewById(R.id.main3_iamges); TextView t = (TextView) findViewById(R.id.main3_text); t.setText(name); ImageLoader.getInstance().displayImage(getIntent().getStringExtra("song"),imageView); }//适配器调用 点击监听
public class HomeAdapter extends RecyclerView.Adapter { Context context; List<News.SongListBean> song_list; ImageLoader imagerloder; public interface OnItemClickLitener { void onItemClick(View view, int position); void onItemLongClick(View view , int position); } private OnItemClickLitener mOnItemClickLitener; public void setOnItemClickLitener(OnItemClickLitener mOnItemClickLitener) { this.mOnItemClickLitener = mOnItemClickLitener; } public HomeAdapter(Context context, List<News.SongListBean> song_list) { this.context = context; this.song_list = song_list; } public XRecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { //多条目判断用哪个Hoderl if(getItemViewType(viewType)==1) { MyViewHolder holder = new MyViewHolder(LayoutInflater.from( context).inflate(R.layout.layoutxx, parent, false)); return holder; }else { MyViewHolder2 holder2 = new MyViewHolder2(LayoutInflater.from( context).inflate(R.layout.layoutxxx, parent, false)); return holder2; } } @Override public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) { if(getItemViewType(position)==1) { MyViewHolder holder1 = (MyViewHolder) holder; holder1.tv.setText(song_list.get(position).getTitle()); imagerloder = ImageLoader.getInstance(); imagerloder.displayImage(song_list.get(position).getPic_big(), holder1.img); }else { MyViewHolder2 holder2 = (MyViewHolder2) holder; holder2.tv1.setText(song_list.get(position).getTitle()); imagerloder = ImageLoader.getInstance(); imagerloder.displayImage(song_list.get(position).getPic_big(), holder2.img1); } if (mOnItemClickLitener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int pos = holder.getLayoutPosition(); mOnItemClickLitener.onItemClick(holder.itemView, pos); } }); } } @Override public int getItemCount() { return song_list.size(); } class MyViewHolder extends RecyclerView.ViewHolder { ImageView img; TextView tv; public MyViewHolder(View view) { super(view); tv = (TextView) view.findViewById(R.id.tv); img = (ImageView) view.findViewById(R.id.img); } } // 对应第二个View class MyViewHolder2 extends RecyclerView.ViewHolder { ImageView img1; TextView tv1; public MyViewHolder2(View view) { super(view); tv1 = (TextView) view.findViewById(R.id.tv1); img1= (ImageView) view.findViewById(R.id.img1); } } //返回的类型 @Override public int getItemViewType(int position) { if(position%2==0){ return 2; }else { return 1; } }}//对应的界面解析
public class Fragment extends android.support.v4.app.Fragment { String uri = "http://tingapi.ting.baidu.com/v1/restserver/ting?method=baidu.ting.billboard.billList&type=1&size=10&offset=0 http://tingapi.ting.baidu.com/v1/restserver/ting?method=baidu.ting.billboard.billList&type=1&size=10&offset=0"; Banner mbanner; /*int page = 0;*/ private XRecyclerView list; private HomeAdapter mAdapter; List<News.SongListBean> song_list; ImageLoader imagerloder; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = LayoutInflater.from(getContext()).inflate(R.layout.layout1, null); mbanner = (Banner) view.findViewById(R.id.mybanne); list = (XRecyclerView) view.findViewById(R.id.list); list.setLayoutManager(new LinearLayoutManager(getContext())); getData(uri); list.setPullRefreshEnabled(true); list.setLoadingMoreEnabled(true); list.setLoadingListener(new XRecyclerView.LoadingListener() { @Override public void onRefresh() { getData(uri ); list.refreshComplete(); } @Override public void onLoadMore() { /* page += 1;*/ getData(uri); /* song_list.addAll(song_list);*/ list.loadMoreComplete(); } }); getData(uri); return view; } private void getData(String uri) { OkHttp3Utils.getInstance().doGet(uri, new GsonObjectCallback<News>() { List<String> mlist = new ArrayList<String>(); @Override public void onUi(News news) { song_list = news.getSong_list(); list.setAdapter(mAdapter = new HomeAdapter(getActivity(),song_list)); mAdapter.setOnItemClickLitener(new HomeAdapter.OnItemClickLitener() { @Override public void onItemClick(View view, int position) { Toast.makeText(getActivity(), position + " click", Toast.LENGTH_SHORT).show(); Intent intent = new Intent(getActivity(),Main3Activity.class); intent.putExtra("name",song_list.get(position).getAlbum_title().toString()); intent.putExtra("song",song_list.get(position).getPic_big().toString()); startActivity(intent); } @Override public void onItemLongClick(View view, int position) { Toast.makeText(getActivity(), position + " long click", Toast.LENGTH_SHORT).show(); } }); for (int i = 0; i < song_list.size(); i++) { String ad1s = song_list.get(i).getPic_big(); ; mlist.add(ad1s); } //设置图片加载器 mbanner.setImageLoader(new GlideImaGlideImageLoader()); mbanner.setImages(mlist); mbanner.start(); } @Override public void onFailed(Call call, IOException e) { } }); }}
//Banner的类
public class GlideImaGlideImageLoader extends ImageLoader { @Override public void displayImage(Context context, Object path, ImageView imageView) { Glide.with(context).load(path).into(imageView); }}
getData(uri); list.setPullRefreshEnabled(true); list.setLoadingMoreEnabled(true); list.setLoadingListener(new XRecyclerView.LoadingListener() { @Override public void onRefresh() { getData(uri+0 ); list.refreshComplete(); } @Override public void onLoadMore() { page += 1; getData(uri+page); /* song_list.addAll(song_list);*/ list.loadMoreComplete(); } }); getData(uri); return view; }
public class HomeAdaper extends RecyclerView.Adapter { Context context; List<Homes.DataBean> list; ImageLoader imagerloder; public HomeAdaper(Context context, List<Homes.DataBean> list) { this.context = context; this.list = list; } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { MyViewHolder holder = new MyViewHolder(LayoutInflater.from( context).inflate(R.layout.layout1, parent, false)); return holder; } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { MyViewHolder holder1 = (MyViewHolder) holder; holder1.tv.setText(list.get(position).getNews_title()); imagerloder = ImageLoader.getInstance(); imagerloder.displayImage(list.get(position).getPic_url(), holder1.img); } @Override public int getItemCount() { return list.size(); } class MyViewHolder extends RecyclerView.ViewHolder { ImageView img; TextView tv; public MyViewHolder(View view) { super(view); tv = (TextView) view.findViewById(R.id.tv); img = (ImageView) view.findViewById(R.id.img); } }}
//bannner轮播图
//相关权限
compile 'com.youth.banner:banner:1.4.9' compile 'com.github.bumptech.glide:glide:3.7.0'
//提成全局
ArrayList mlist;
public void getNews(ArrayList<News.DataBean> list) { recycler.setAdapter(homeadper =new HomeAdaper(Main2Activity.this,list)); mlist = new ArrayList(); for (int i = 0; i < list.size(); i++) { mlist.add(list.get(i).getImage_url()); } banner.setImageLoader(new GlideImageLoader()); banner.setImages(mlist); banner.start(); homeadper.setOnItemClickLitener(new HomeAdaper.OnItemClickLitener() { @Override public void onItemClick(View view, int position) { Toast.makeText(Main2Activity.this, position + " click", Toast.LENGTH_SHORT).show(); Intent intent = new Intent(Main2Activity.this,Main3Activity.class); startActivity(intent); } @Override public void onItemLongClick(View view, int position) { Toast.makeText(Main2Activity.this, position + " long click", Toast.LENGTH_SHORT).show(); } }); }}
阅读全文
0 0
- XRecyclerView下拉刷新和上拉加载
- XRecyclerView上拉刷新下拉加载
- XRecyclerView 上拉刷新、下拉加载
- XRecyclerView 上拉加载 下拉刷新
- XRecyclerView下拉刷新,上拉加载
- 使用XRecyclerview下拉刷新,上拉加载
- XRecyclerView的上拉加载,下拉刷新
- XRecyclerView+上拉加载下拉刷新+多条目加载
- 支持下拉刷新上拉加载xrecyclerview的基本使用
- XRecyclerView 实现下拉刷新和上拉加载更多
- xRecyclerView简单实现下拉刷新和上拉加载
- xRecyclerView简单实现下拉刷新和上拉加载
- Xrecyclerview的使用(上拉刷新,下拉加载)
- Android XRecyclerView简单实现上拉刷新,下拉加载
- XRecyclerView的下拉刷新上拉加载功能
- XRecyclerView的下拉刷新和上拉加载
- RecyclerView的上拉加载下拉刷新-xRecyclerView
- Mvp+OkHttp+XRecyclerView------上拉加载下拉刷新
- android 判断某个字符串包含某个字符串的个数
- 在jsp中进行文件的读写操作
- 熊猫学猿--第六竹(函数)
- 普元 EOS Platform 7.6 Oracle数据库,定时任务偶尔出现不执行问题
- Java面试题集锦
- XRecyclerView 上拉加载 下拉刷新
- window下编程的编码小坑
- Gluon新机器学习库,学习库中的富二代丨又拖了后腿,9亿4G用户平均月流量2007M【软件网每日新闻播报│第10-23期】
- 企业服务云生态居然长这样!
- CentOS7虚拟机安装、配置ZFS
- 使用 CSS3 实现超炫的 Loading(加载)动画效果
- asp.net 使用页适配器和重写Render对全站输出的页面的HTML内容进行修改,不会错乱
- 达内课程-基本类型包装类Math、SimpleDateFormat、Date、DecimalFormat方法使用
- 微信小程序点击tabBar刷新页面