retrofit+RecyclerView+SwipeRefreshLayout下拉刷新上拉加载+item点击
来源:互联网 发布:淘宝上警服叫什么 编辑:程序博客网 时间:2024/06/05 02:52
//接口ApiServicepublic interface ApiService { //http://app.vmoiver.com/apiv3/post/getPostInCate?cateid=0&p=1 @GET("/apiv3/post/getPostInCate?cateid=0&p=1") Call<Bean> getList();}//item点击接口//adapterpublic interface OnItemClickLitener { void onItemClick(View view, int position);}public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { private List<Bean.DataBean> list; private Context context; public RecyclerAdapter(List<Bean.DataBean> list, Context context) { this.list = list; this.context = context; }private OnItemClickLitener mOnItemClickLitener; public void setOnItemClickLitener(OnItemClickLitener mOnItemClickLitener) { this.mOnItemClickLitener = mOnItemClickLitener;}@Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { LayoutInflater view = LayoutInflater.from(context); View inflate = view.inflate(R.layout.one_item,null); OneViewHolder viewHolder = new OneViewHolder(inflate); return viewHolder; } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { ((OneViewHolder) holder).oneText.setText(list.get(position).title);if (mOnItemClickLitener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mOnItemClickLitener.onItemClick(viewHolder.itemView, position); ObjectAnimator .ofFloat(v, "rotationX", 0.0F, 360.0F) .setDuration(500) .start(); } });}
}
@Override
public int getItemCount() {
return list == null ? 0 : list.size();
}
public class OneViewHolder extends RecyclerView.ViewHolder {
public TextView oneText;
public OneViewHolder(View itemView) {
super(itemView);
oneText = (TextView) itemView.findViewById(R.id.one_text);
}
}}
//main主类public class MainActivity extends AppCompatActivity { private SwipeRefreshLayout swip; private String urlPath = "http://app.vmoiver.com/apiv3/post/getPostInCate?cateid=0&p=1"; private RecyclerView recyclerView; private RecyclerAdapter adapter; private List<Bean.DataBean> list = new ArrayList<>(); private LinearLayoutManager lin; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); swip=(SwipeRefreshLayout)findViewById(R.id.swip); recyclerView = (RecyclerView) findViewById(R.id.recycler); swip.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { loadData(); adapter.notifyDataSetChanged(); swip.setRefreshing(false); } }); loadData(); lin = new LinearLayoutManager(this); recyclerView.setLayoutManager(lin); recyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); adapter = new RecyclerAdapter(list, this); recyclerView.setAdapter(adapter); recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { super.onScrollStateChanged(recyclerView, newState); if(newState==RecyclerView.SCROLL_STATE_IDLE){ int position = lin.findLastVisibleItemPosition(); if(position==list.size()-1){ loadData(); adapter.notifyDataSetChanged(); } } } }); } private void loadData() { Retrofit retrofit = new Retrofit.Builder() .addConverterFactory(GsonConverterFactory.create()) .baseUrl("http://app.vmoiver.com") .build(); ApiService apiService = retrofit.create(ApiService.class); Call<Bean> call = apiService.getList(); call.enqueue(new Callback<Bean>() { @Override public void onResponse(Call<Bean> call, Response<Bean> response) { Bean bean = response.body(); list.addAll(bean.data); adapter.notifyDataSetChanged(); adapter.setOnItemClickLitener(new OnItemClickLitener() { @Override public void onItemClick(View view, int position) { Toast.makeText(MainActivity.this,position+" ",Toast.LENGTH_SHORT).show(); } }); } @Override public void onFailure(Call<Bean> call, Throwable t) { } }); }}
阅读全文
0 0
- retrofit+RecyclerView+SwipeRefreshLayout下拉刷新上拉加载+item点击
- RecyclerView实现上拉刷新,下拉加载,item点击事件
- Retrofit+RecyclerView+SwipeRefreshlayout实现上拉刷新和分页加载
- Retrofit+RecyclerView+SwipeRefreshlayout实现上拉刷新和分页加载
- Retrofit+RecyclerView+SwipeRefreshlayout实现上拉刷新和分页加载
- RecyclerView和SwipeRefreshLayout下拉刷新和上拉加载
- SwipeRefreshLayout+RecyclerView实现下拉刷新上拉自动加载
- SwipeRefreshLayout + RecyclerView实现上拉加载和下拉刷新
- recyclerview+swiperefreshlayout实现GridView下拉刷新,上拉加载更多
- SwipeRefreshLayout+RecyclerView实现下拉刷新上拉自动加载
- Android SwipeRefreshLayout+RecyclerView下拉刷新与上拉加载
- SwipeRefreshLayout配合RecyclerView实现上拉加载更多下拉刷新
- SwipeRefreshLayout + RecyclerView下拉刷新,上拉加载更多
- SwipeRefreshLayout+RecyclerView实现下拉刷新上拉加载功能
- 自定义下拉刷新上拉加载控件(SwipeRefreshLayout + recyclerView)
- SwipeRefreshLayout + RecyclerView 实现 上拉刷新 和 下拉加载更多
- Swiperefreshlayout与Recyclerview下拉刷新和上拉加载
- SwipeRefreshLayout + RecyclerView 实现上拉加载下拉刷新
- 60.全排列
- 几个项目管理软件的比较
- Scrapy Item Loaders机制详解
- 单例模式
- eclipse中应知道的一些快捷操作方式
- retrofit+RecyclerView+SwipeRefreshLayout下拉刷新上拉加载+item点击
- JavaScript 箭头函数(Lambda表达式)
- iOS 代码关闭App
- 浅析javascript中的this关键字
- Using cordova-fetch for cordova-android@6.2.2长时间无响应的问题
- 页面自动加载bootstrap的模态框
- Apriori定律
- uva 1354 Mobile Computing code2
- UGUI的优点新UI系统四 开源