andriodjie——xRecyclerView网络获取数据简单实现
2017-11-10 18:20
671 查看
1.配置build.gradle文件:
直接添加
直接添加
compile'com.jcodecraeer:xrecyclerview:1.3.2'即可。
2.在xml文件的使用:
<?xmlversion="1.0"encoding="utf-8"?> <RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_xreca" android:layout_width="match_parent" android:layout_height="match_parent" > <com.jcodecraeer.xrecyclerview.XRecyclerView android:layout_width="match_parent" android:id="@+id/xre_xrv" android:layout_height="match_parent"> </com.jcodecraeer.xrecyclerview.XRecyclerView> </RelativeLayout>
在xml中的使用只需要配置它的id,长宽就好了。
3.在JAVJ文件中的使用:
publicclassXrecyclerviewActivityextendsAppCompatActivity{
privateXRecyclerViewrecyclerView;
privateContextcontext;
//数据集合
privateList<String>list=newArrayList<>();
//获取数据的开始
privateintcurr;
privateMyAdapteradapter;
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_xreca);
getSupportActionBar().hide();
context=this;
recyclerView=(XRecyclerView)findViewById(R.id.xre_xrv);
//LinearLayoutManager是线性布局,setOrientation可以设置他的方向是横向还是纵向。
LinearLayoutManagerlayoutManager=newLinearLayoutManager(context);
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(layoutManager);
//GridLayoutManager是表格布局,GridLayoutManager(Context,表格的个数(根据方向决定横排几个或纵排几个))
//GridLayoutManagerlayoutManager1=newGridLayoutManager(context,3);
//layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
//recyclerView.setLayoutManager(layoutManager1);
//StaggeredGridLayoutManager是瀑布流,StaggeredGridLayoutManager(横或纵排个数,方向)
//StaggeredGridLayoutManagerstaggeredGridLayoutManager=newStaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL);
//recyclerView.setLayoutManager(staggeredGridLayoutManager);
//XRecyclerView的上下拉监听方法
recyclerView.setLoadingListener(newXRecyclerView.LoadingListener(){
@Override
//下拉刷新
publicvoidonRefresh(){
//当下拉刷新的时候,重新获取数据,所有curr要变回0,并且把集合list清空
curr=0;
list.clear();
getData(curr);
recyclerView.refreshComplete();
}
@Override
//上拉加载
publicvoidonLoadMore(){
//当上拉加载的时候,因为一次获取是10个数据,所也在获取的时候就要在加10的地方开始获取
//如:第一次0——9;
//第二次10——19;
//SystemClock.sleep(1000);
curr=curr+10;
getData(curr);
recyclerView.refreshComplete();
}
});
//第一次获取数据
curr=0;
getData(curr);
}
privatevoidgetData(intnumber){
for(inti=number;i<number+10;i++){
list.add("数据是第"+i+"个");
}
//调用Adapter展示数据,这个判断是为了不重复创建MyAdapter的对象
if(adapter==null){
adapter=newMyAdapter(list,context);
recyclerView.setAdapter(adapter);
}else{
adapter.notifyDataSetChanged();
}
}
privateclassMyAdapterextendsRecyclerView.Adapter<RecyclerView.ViewHolder>{
privateList<String>list=newArrayList<>();
privateContextcontext;
publicMyAdapter(List<String>list,Contextcontext){
this.list=list;
this.context=context;
}
@Override
publicRecyclerView.ViewHolderonCreateViewHolder(ViewGroupparent,intviewType){
//给Adapter添加布局,bq把这个view传递给HoldView,让HoldView找到空间
Viewview=LayoutInflater.from(context).inflate(R.layout.xrecyc_adapter,parent,false);
HoldViewholdView=newHoldView(view);
returnholdView;
}
@Override
publicvoidonBindViewHolder(RecyclerView.ViewHolderholder,intposition){
//position为Adapter的位置,数据从list里面可以拿出来。
Strings=list.get(pos
9461
ition);
((HoldView)holder).textView.setText(s);
}
@Override
publicintgetItemCount(){
returnlist.size();
}
privateclassHoldViewextendsRecyclerView.ViewHolder{
privateTextViewtextView;
publicHoldView(ViewitemView){
super(itemView);
//根据onCreateViewHolder的HoldView所添加的xml布局找到空间
textView=(TextView)itemView.findViewById(R.id.xrecyc_text);
}
}
}
}
相关文章推荐
- RecyclerView获取网络数据并解析显示的过程
- Android RecyclerView 获取数据实现添加,删除功能
- 在Android Studio上使用GSON+VOLLEY,秒处理网络数据成集合。感受框架的力量。搭配RecyclerView和SwipeRefreshLayout,实现底端加载更多,下拉刷新。
- RecyclerView和okhttp结合 实现一个网络请求数据
- 网络获取图片数据后 利用viewpager实现弹簧效果
- Android上实现一个简单的天气预报APP(三) 获取网络数据
- Android 用Retrofit进行网络获取数据,recyclerview进行展示在Fragment里,并存入到GreenDao数据库中
- RecyclerView 实现listview和gridview布局(各自的子布局不同,网络数据)
- MVP+Retrofit+RecyclerView实现加载网络数据
- MVP实现用Retrofit请求网络数据Fresco加载图片,Recyclerview CheckBox显示并实现全选删除
- android ViewPager实现的轮播图广告自定义视图,网络获取图片和数据
- RecyclerView条目跳转+SpringView数据刷新加载+MVP+OKhttp+拦截器+自定义view 实现请求网络数据的二级列表购物车
- RecyclerView实现多种布局与OkHttp结合获取数据
- MVP+Retrofit+RxJava请求网络数据实现RecyclerView多条目展示
- 利用原始套接字实现一个简单的采集网络数据包
- android 线程实现异步网络数据获取
- (三)自定义不断转圈的圆形进度条的实现(主要在网络访问时候,提示用户在获取数据)
- IOS UITableView详解一数据展示 & 页面简单实现
- android获取网络图片简单实现
- 简单一步实现ViewPager滑动到指定页加载数据