您的位置:首页 > 理论基础 > 计算机网络

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);
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐